maven版本控制

dependencyManagement标签的使用方法

1.首先一定区分出maven依赖,当我们引入一个jar包时,可能这个jar包内还会存在自己本身的pom文件,进行一系列的引入jar包

而我们说的版本控制只是对jar包版本的继承;

比如我当前项目的parent是一个jar包,那么内部很多jar包的版本都可以不用指定,会继承自parent的版本;

那么这个parent是怎么做到的呢?

通过《dependencyManagemen》标签,在引入jar包的同时对jar包的版本声明出来;

因为一个项目只能有parent 那么其余的版本管理应该怎么继承呢?

通过《dependencyManagemen》标签内的type=pom,scope=import 来引入版本管理

 

一.父类P项目的pom文件,假如是如下的写法

<groupId>com</groupId>
<artifactId>P</artifactId>//父类项目名称,叫做P
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
//对项目A的版本进行了统一管理,子类使用A的时候,可以不写<version>标签
<dependencyManagement>
        <dependencies>
            <dependency>
                  <groupId>com</groupId>
                  <artifactId>A</artifactId>
                  <version>0.0.1-SNAPSHOT</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

 

二.那么子类,如果想使用A,有两种方式
1.parent标签,子类POM文件应该这样写

//引用父类项目P
<parent>
    <groupId>com</groupId>
    <artifactId>P</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
//子类使用项目A
<dependencies>
    <dependency>
          <groupId>com.wentian</groupId>
          <artifactId>A</artifactId>
          //这里并没有使用<version>标签
    </dependency>
</dependencies>

2.import标签,子类POM文件应该这样写

//子类使用项目A,注意使用import标签时,不再使用<parent>标签
<dependencies>
    <dependency>
          <groupId>com.wentian</groupId>
          <artifactId>A</artifactId>
          //这里并没有使用<version>标签
    </dependency>
</dependencies>
//表示将项目P的dependencyManagement拿到本POM中,不再继承parent
<dependencyManagement>
        <dependencies>
            <dependency>
                    <groupId>com</groupId>
                    <artifactId>P</artifactId>
                    <version>0.0.1-SNAPSHOT</version>
                    <type>pom</type>//必须是type=pom
                    <scope>import</scope>//必须是scope=import
            </dependency>
        </dependencies>
</dependencyManagement>

 

 

 
posted @ 2020-11-03 19:51  不知无畏  阅读(758)  评论(0)    收藏  举报