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