假如我们现在有三个相互依赖的模块。前两个模块junit的版本是4.0.0,第三个模块的版本是4.9.0。由于test范围的依赖不能传递,所以必然会分散在各个模块工程中,造成版本不一致。
解决思路:将junit依赖统一提取到父工程中,在子工程中声明junit依赖时不指定版本,以父工程中统一设定的为准。同时也便于修改。
操作步骤:
- 创建一个Maven工程做为父工程。注意:打包的方式pom。
- 在子工程中声明对父工程的引用。
<parent>
<groupId>com.example</groupId>
<artifactId>first</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../first/pom.xml</relativePath>
</parent>
其中relativePath标明的是父工程中的pom.xml文件。
-
将子工程坐标中与父工程坐标中重复的内容删除。
删除重复的内容
由于继承了父工程导致子工程中与父工程有相同的部分。这时应当删除子工程中和父工程相同的部分。
- 在父工程中统一声明junit的依赖。
<!-- 配置依赖的管理 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 在子工程中删除junit依赖的版本号部分。
由于在父工程中声明了junit,子工程中可能有与父工程junit版本号相同的junit。需要删除子工程中相应的junit的版本号。
聚合
配置继承后要执行安装命令首先要安装父工程。然后再安装各个子工程。聚合的作用就是一键安装各个模块工程。
聚合的方法:
在一个总的聚合工程中配置各个参与聚合的模块。
<modules>
<module>../JavaProject2</module>
</modules>
使用方式:
在聚合工程的pom.xml上点击右键,maven install。