Maven继承和聚合

假如我们现在有三个相互依赖的模块。前两个模块junit的版本是4.0.0,第三个模块的版本是4.9.0。由于test范围的依赖不能传递,所以必然会分散在各个模块工程中,造成版本不一致。

解决思路:将junit依赖统一提取到父工程中,在子工程中声明junit依赖时不指定版本,以父工程中统一设定的为准。同时也便于修改。

操作步骤:

  1. 创建一个Maven工程做为父工程。注意:打包的方式pom。
  2. 在子工程中声明对父工程的引用。
<parent>
      <groupId>com.example</groupId>
      <artifactId>first</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      
      <relativePath>../first/pom.xml</relativePath>
  </parent>

其中relativePath标明的是父工程中的pom.xml文件。

  1. 将子工程坐标中与父工程坐标中重复的内容删除。


    删除重复的内容

    由于继承了父工程导致子工程中与父工程有相同的部分。这时应当删除子工程中和父工程相同的部分。

  2. 在父工程中统一声明junit的依赖。
<!-- 配置依赖的管理 -->
  <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
  </dependencyManagement>
  1. 在子工程中删除junit依赖的版本号部分。
    由于在父工程中声明了junit,子工程中可能有与父工程junit版本号相同的junit。需要删除子工程中相应的junit的版本号。

聚合

配置继承后要执行安装命令首先要安装父工程。然后再安装各个子工程。聚合的作用就是一键安装各个模块工程。

聚合的方法:
在一个总的聚合工程中配置各个参与聚合的模块。

<modules>
    <module>../JavaProject2</module>
</modules>

使用方式:
在聚合工程的pom.xml上点击右键,maven install。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。