分模块分工程的作用是为了将工作可以细化到每个工作组,最后可以统一的整合项目。且每个单独的module可以独立运行调试。

顶级项目为project,子项目为module。

1、创建maven project顶级项目并修改 <packaging>的jar为pom

2、在其他子项目pom.xml加入<parent></parent>并填写相关信息

3、在上级项目pom.xml中填写子项目<modules></modules>

4、在整合的module的pom中dependency其他需要打包到一起的module,并且在build中添加整合信息,代码如下:

1 <plugin>
 2                 <groupId>org.apache.maven.plugins</groupId>
 3                 <artifactId>maven-war-plugin</artifactId>
 4                 <version>2.4</version>
 5                 <configuration>
 6                     <overlays>
 7                         <overlay>
 8                             <groupId>com.tyl</groupId><!--需要整合的子模块1-->
 9                             <artifactId>a</artifactId><!--需要整合的子模块1-->
10                         </overlay>
11                         <overlay>
12                             <groupId>com.gzj</groupId><!--需要整合的子模块2-->
13                             <artifactId>b</artifactId><!--需要整合的子模块2-->
14                         </overlay>
15                     </overlays>
16                 </configuration>
17             </plugin>

 

 

5、打包时在最顶级项目上使用maven打包

值得注意的是,在整合时如果在同目录下文件命名冲突,maven整合的规则是保留在整合的module中的文件。如果是在其他module中冲突没那么保留顺序按照引用顺序(具体是按照overlays引用顺序还是dependency顺序未测试,估计是按照overlays顺序)。