分模块分工程的作用是为了将工作可以细化到每个工作组,最后可以统一的整合项目。且每个单独的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顺序)。