Maven-dependencyManagement与import

dependencyManagement标签,我个人认为它命名不好,刚学maven的时候,乍眼一看应该是对maven依赖进行管理,其实,它只是用来统一管理依赖版本的,记住,是版本,其目的是防止不同子项目引用不同的版本而导致编写代码的时候出现意外错误

一.父类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>

原文:https://blog.csdn.net/u011624903/article/details/87918800 
 

Maven项目中,`<dependencyManagement>`标签主要用于统一管理项目的依赖版本,它通常放在`pom.xml`文件的`<dependencies>`元素之前。如果你想要一次性导入`dependencyManagement`中的所有依赖,你需要执行以下步骤: 1. **确保`dependencyManagement`存在**: 确保你的`pom.xml`文件中有一个有效的`dependencyManagement`部分,并包含了你想导入的依赖。 ```xml <project> ... <dependencyManagement> <dependencies> <dependency> <groupId>com.example</groupId> <artifactId>parent-pom</artifactId> <version>1.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ... </project> ``` 这里假设`parent-pom`是一个包含版本信息的父POM,你需要导入其依赖。 2. **引入外部POM**: 如果`dependencyManagement`在外部POM文件中,你需要使用`<dependencyManagement>`标签的`<import>`子标签来引入。 3. **使用`mvn install`**: 在`pom.xml`所在的目录下,运行`mvn install`命令,这会下载并安装`dependencyManagement`中的所有依赖到本地仓库。 4. **引用这些依赖**: 之后在你的模块(如子模块)的`<dependencies>`部分,不需要指定版本,Maven会自动从`dependencyManagement`获取相应的版本。 ```xml <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> </dependencies> ``` 在这里,Spring Context的版本已经在`dependencyManagement`中设定好了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值