1. 多模块工程搭建步骤
1、创建一个 maven-web-parent
父工程,在其 pom.xml
中修改以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 |
<groupId>cn.com.jomin</groupId> <artifactId>maven-web-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>${project.artifactId}</name> <modules> <module>maven-web-commen</module> <module>maven-web-admin</module> <module>maven-web-service</module> </modules> |
2、创建一个 maven-web-admin
子工程,在其 pom.xml
中修改以下内容:
1 2 3 4 5 6 7 8 9 10 11 |
<parent> <groupId>cn.com.jomin</groupId> <artifactId>maven-web-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>..</relativePath> </parent> <artifactId>maven-web-admin</artifactId> <packaging>war</packaging> <name>${project.artifactId}</name> |
3、直接把 maven-web-admin
移动到 maven-web-parent
文件夹下,并在 maven-web-parent
下运行 mvn clean install
来构建多模块工程。
2. 多模块工程 jar 包管理问题 dependencyManagement
2.1. 场景
由于在多模块项目中开发时,需要强制约束子模块使用Jar包版本一致,从而避免开发完成集成测试版本不兼容的问题。
将所有工程相同的依赖和插件的配置,全部放入父工程中,此时子工程就会继承父工程的依赖和插件,不需要每个工程都重复定义,而且可以在父工程中统一约束所有依赖和插件的版本。
2.2. 问题
1、如果直接将所有依赖和插件直接放入父工程,会导致子工程强制性继承,也许子工程并不需要某些依赖呢?
2.3. 解决方案
此时最好的做法,就是在父工程中,使用<dependencyManagement>
元素和<pluginManagement>
元素,来声明所有的依赖和插件。
此时在子工程中,就可以对自己需要的依赖进行声明,但是不用定义版本号,只要groupId
和artifactId
即可。这样声明之后才会继承依赖,而且版本由父工程约束。
原创文章,转载请注明: 转载自LoserZhao – 诗和远方[ http://www.loserzhao.com/ ]
本文链接地址: http://www.loserzhao.com/bigdata/maintenance/maven-mutil-model-configuration.html
文章的脚注信息由WordPress的wp-posturl插件自动生成
0 条评论。