构建多模块Maven工程
基础知识铺垫
Maven多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理,尤其是一些开源框架,也是采用多模块的方式,提供插件集成,用户可以根据需要配置指定的模块.
拆分规则
(1)按业务模块拆分
(2)按层拆分
(一)创建Maven父工程
选择Ohter
选择Maven Project 下一步
勾选 Create a simple project (skip archetype selection) ----快速创建工程跳过选择骨架
填写组名,id名 和packaging
<font color=red size=4>注意:一定要选择pom,要不然就不是父工程</font>
创建后的父工程如下图所示
创建父工程完成后,打开pom.xml,添加如下内容
<properties>
<hinernate.version>5.0.7.Final</hinernate.version>
<spring.version>4.2.4.RELEASE</spring.version>
<struts.version>2.3.24</struts.version>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hinernate.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.4</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts.version}</version>
<exclusions>
<exclusion>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<font color=red size=4>注意:创建工程默认的JDK版本是1.5 , 这里改成你自己JDK的版本</font>
</br>
(二) 创建Maven子模块
同上,选择File → New → Other
这次我们选择Model工程
输入工程名和父工程名
<font color=red size=4>注意:这里一定要选择父工程</font>
输入组名和打包格式
<font color=red size=4>注意:这里的打包格式选择jar,如果是web工程则选择war方式</font>
如图:
<font size=5>
在此需建立4个子模块
依次如下
erp_domain2 存放实体包
erp_dao2 存放数据访问的接口及实现类
erp_service2 存放业务逻辑层接口及实现类
</font>
<font color=red size=5>
erp_web2 存放action类代码和前端代码
注意:这里的packaging 方式一定要选择war
</font>
在erp_web2 工程中展开 src/main/webapp目录,建立WEB-INF文件夹并创建(拷贝)web.xml到文件夹中
将struts.xml 和 applicationContext.xml 配置文件放入erp_web2 的serc/main/resource 下
构建各个模块后,我们会发现父工程的pom.xml中自动出现如下信息:
<modules>
<module>erp_domain</module>
<module>erp_dao</module>
<module>erp_service</module>
<module>erp_web</module>
</modules>
而子模块中的pom.xml的内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.maven.erp</groupId>
<artifactId>erp_parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>erp_domain</artifactId>
</project>
<font color=red size=6>
如果你看到父工程和子模块中的内容如上述所示,那么你的模块建立就没问题了.
</font>