十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
博主也是在学习,看到一篇博客,自己一边学习,一边写下了这篇博客
创新互联是一家专业提供通州企业网站建设,专注与网站设计、成都网站建设、html5、小程序制作等业务。10年已为通州众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
tyh-parent 本身就是一个父工程,所以它不需要继承其他的工程, 我们主要在父工程中定义依赖 jar 包的版本和 Maven 插件的版本信息。 注意, 此处我使用的 maven 是 apache-maven-3.3.9 这个版本。
首先点击【File】 菜单选项, 并在下拉框中选中【New】 , 接着点击【Other】!
修改pom文件,添加依赖
4.0.0
cn.yuechenc
ycshop-parent
0.0.1-SNAPSHOT
pom
4.12
1.6.4
4.3.18.RELEASE
1.9.1
1.0
5.1.46
0.9.5.2
1.2
2.5
2.0
2.9.6
1.3.3
3.4.6
1.3.1
5.1.2
junit
junit
${junit.version}
test
org.slf4j
slf4j-log4j12
${slf4j.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-core
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.aspectj
aspectjrt
${aspectj.version}
org.aspectj
aspectjweaver
${aspectj.version}
aopalliance
aopalliance
${aopalliance.version}
mysql
mysql-connector-java
${mysql-connector.version}
com.mchange
c3p0
${c3p0.version}
javax.servlet
jstl
${jstl.version}
javax.servlet
servlet-api
${servlet-api.version}
provided
javax.servlet
jsp-api
${jsp-api.version}
provided
com.fasterxml.jackson.core
jackson-core
${jackson.version}
com.fasterxml.jackson.core
jackson-annotations
${jackson.version}
com.fasterxml.jackson.core
jackson-databind
${jackson.version}
commons-fileupload
commons-fileupload
${fileupload.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
${mybatis-spring.version}
com.github.pagehelper
pagehelper
${pagehelper.version}
${project.artifactId}
org.apache.maven.plugins
maven-resources-plugin
2.7
UTF-8
org.apache.maven.plugins
maven-compiler-plugin
3.2
1.7
UTF-8
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
Pom.xml 文件说明:
1、
不是真正的依赖, 如果你继承 ycshop-parent 这个工程, 会发现什么 jar 包也没有依赖过来。 工
程中用到的所有 jar 包都应该在这里有定义。
2、
都会全程参与, 编译、 测试、 运行时候都会用到。 因为我们要把这个 war 包部署到 tomcat
里面去, tomcat 里面都会提供 servlet 和 jsp 的 API, 如果把它也打包到 war 包里面, 可能会
有冲突。
3、
对插件实际的依赖, 而只是管理插件的版本。
ycshop-common 工程主要存放通用的工具类, 它本身是一个子工程, 所以它需要继承父工
程, 并且它的打包方式是 jar。 注意, ycshop-common 工程并不是一个独立的模块。
与创建 ycshop-parent 项目一样的操作方式, 创建一个【maven project】 。
修改pom文件,添加依赖
4.0.0
cn.yuechenc
ycshop-parent
0.0.1-SNAPSHOT
ycshop-common
junit
junit
test
org.slf4j
slf4j-log4j12
ycshop-pojo 工程主要存放项目中通用的 pojo 对象。
和创建ycshop-commom工程同样的方法创建一个名为“ycshop-pojo”的maven工程
修改pom文件,添加依赖
4.0.0
cn.yuechenc
ycshop-parent
0.0.1-SNAPSHOT
ycshop-pojo
junit
junit
test
搭建 ycshop-manager 工程, 这是后台管理子项目服务工程。 这个工程里面需要很多模块,
我们须把这些模块单独拆分, 所以它应该是一个聚合工程。
聚合工程选择 pom 打包形式。 并选择父项目 ycshop-parent
修改pom文件,使其依赖于ycshop-common和ycshop-pojo工程
4.0.0
cn.yuechenc
ycshop-parent
0.0.1-SNAPSHOT
ycshop-manager
pom
cn.yuechenc
ycshop-common
0.0.1-SNAPSHOT
cn.yuechenc
ycshop-pojo
0.0.1-SNAPSHOT
此模块作为一个辅助的jar包,不需要其他的依赖。
搭建 tyh-manager-dao 模块的步骤同上面 tyh-manager-dto 一样, 只不过是模块名字改为
tyh-manager-dao 而已。
修改pom文件,添加dao层所需依赖
4.0.0
cn.yuechenc
ycshop-manager
0.0.1-SNAPSHOT
ycshop-manager-dao
cn.yuechenc
ycshop-manager-dto
0.0.1-SNAPSHOT
junit
junit
test
org.slf4j
slf4j-log4j12
mysql
mysql-connector-java
com.mchange
c3p0
org.mybatis
mybatis
org.mybatis
mybatis-spring
com.github.pagehelper
pagehelper
ycshop-manager-interfaces 模块为 service 模块的接口模块。
搭建方式与 dao 模块的搭建方式一致, 打包方式为 jar 包方式。(此处省略)
修改pom文件,使其依赖于dto和dao两个模块。
4.0.0
cn.yuechenc
ycshop-manager
0.0.1-SNAPSHOT
ycshop-manager-interfaces
cn.yuechenc
ycshop-manager-dto
0.0.1-SNAPSHOT
cn.yuechenc
ycshop-manager-dao
0.0.1-SNAPSHOT
该模块是个 war 工程, 既然 tyh-manager 工程是个聚合工程, 故可以聚合无数个模块,
但是总归要靠一个 war 工程来将所有的模块聚合起来, 因此我们才需要新建一个 war 工程,
将来用于部署使用(可以单独部署 service 应用做到前后端分离) 。
此时工程会报错,是因为缺少web.xml文件
在图中的webapp文件夹下创建WEB-INF文件夹,在他下面创建一个xml文件,内容如下:
此时已近解决了报错的问题,接下来开始添加依赖——服务处需要调用dao层,所以要依赖于dao,另外还需要使用spring,
4.0.0
cn.yuechenc
ycshop-manager
0.0.1-SNAPSHOT
ycshop-manager-service
war
cn.yuechenc
ycshop-manager-dao
0.0.1-SNAPSHOT
cn.yuechenc
ycshop-manager-interfaces
0.0.1-SNAPSHOT
org.springframework
spring-context
org.springframework
spring-core
org.springframework
spring-beans
org.springframework
spring-webmvc
org.springframework
spring-jdbc
org.aspectj
aspectjrt
org.aspectj
aspectjweaver
aopalliance
aopalliance
ycshop-manager-web 工程虽然从名称上看好像是一个 ycshop-manager 的子工程。 但是在创建
的时候为了让服务和前端页面分离开来, 最好是将 web 工程单独作为一个项目, 不要作为
聚合工程的子工程
因为是war打包方式,同样会报错,解决方式和service一样
修改pom文件,添加依赖
4.0.0
cn.yuechenc
ycshop-parent
0.0.1-SNAPSHOT
ycshop-manager-web
war
junit
junit
test
org.slf4j
slf4j-log4j12
org.springframework
spring-context
org.springframework
spring-core
org.springframework
spring-beans
org.springframework
spring-webmvc
org.aspectj
aspectjrt
org.aspectj
aspectjweaver
aopalliance
aopalliance
javax.servlet
jstl
javax.servlet
servlet-api
provided
javax.servlet
jsp-api
provided
到此,我们的第一个系统架构就算是搭建完成了
如果要运行 web 工程, 按照传统的方式应该是将其发布到一个 tomcat 服务器中, 然后
启动服务器来运行这个工程。
但是在这里我们应该在其 pom.xml 文件中配置一个 maven 的 tomcat 插件。 那么为什么
要使用 maven tomcat 插件来启动 web 工程呢?
这是因为在互联网项目中, 动辄十几个甚至好几十个 web 工程, 如果按照传统的添加
tomcat 服务器的方式来启动的话, 那么我们为了避免端口冲突, 每增加一个 web 工程都要
修改三个端口, 非常麻烦。 而使用 maven tomcat 插件来启动工程, 则只需改一个端口即可,
显然简单了很多。
先来看 web 工程。 它可以独立运行, 那么应该怎么运行呢?
为了方便测试, 在 webapp 文件夹下, 创建一个 Index.jsp 文件。 如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
欢迎进入越宸阁!
在web工程的pom文件中加入tomcat插件
org.apache.tomcat.maven
tomcat7-maven-plugin
8080
/
说明:
1、 其中<path>/<path>
的意思是输入完 localhost:端口号之后便可以直接访问工程首页了
2、 <port>8080</port>
的意思是指定该 web 工程的访问端口号。
此时我们最好对之前的项目都进行install使其重新编译
因为项目之间存在依赖关系,所以最好按照创建顺序依次install
下面,我们启动项目
在 Goals 输入框中输入: clean tomcat7:run, 点击【Apply】 和【Run】 来运行该 web 工程。
运行完成,会在控制台打印出运行的url和端口
最后,我们在浏览器中访问此url
与上一节基本一样。 在 ycshop-manager 项目 pom.xml 中配置 tomcat 插件。 并修改其端口,
与 web 项目端口不同。
org.apache.tomcat.maven
tomcat7-maven-plugin
8081
/
和启动web同样的方法启动manager项目
此时会打印出8081端口的url
到此我们的工程就算是搭建完成了。
下一篇,将会对整个系统进行ssm框架的整合