Maven:摆脱旧的依赖

时间:2018-10-17 21:19:03

标签: maven pom.xml

我有一个基于XYZ的基于Maven的项目,该项目具有以下依赖性:

<dependency>
  <groupid>com.example.test</groupid>
  <artifactId>PQR</artifactId>
  <version>${version}</version>
</dependency>

此PQR依赖项具有版本1.2的其他Maven依赖项ABC 当我在另一个项目中使用XYZ作为依赖项时,我想使用ABC 1.4版。

我尝试了以下操作: 1)更改依存顺序:(明确添加ABC 1.4依存关系)

<dependency>
  <groupId>com.exampe.test</groupId>
  <artifactId>ABC</artifactId>
  <version>1.4</version>
</dependency>
<dependency>
  <groupid>com.example.test</groupid>
  <artifactId>PQR</artifactId>
  <version>${version}</version>
</dependency>

2)从PQR中排除ABC

<dependency>
  <groupId>com.exampe.test</groupId>
  <artifactId>ABC</artifactId>
  <version>1.4</version>
</dependency>
<dependency>
  <groupid>com.example.test</groupid>
  <artifactId>PQR</artifactId>
  <version>${version}</version>
  <exclusions>
     <exclusion>
       <artifactId>com.exampe.test</artifactId>
       <groupId>ABC</groupId>
     </exclusion>
  </exclusions>
</dependency>

这两个都不起作用。 当我使用XYZ作为依赖项时,我仍然获得1.2版本。 我该如何正确处理?

1 个答案:

答案 0 :(得分:1)

您的第一个解决方案是一种(正确的)可能性。直接依赖项中的版本号总是获胜。如果它不适合您,则可能是您犯了一个错误(错误的groupId,未重建或更新等)

另一种更优雅的解决方案是添加

<dependency>
  <groupId>com.exampe.test</groupId>
  <artifactId>ABC</artifactId>
  <version>1.4</version>  
</dependency>

转到您的<dependencyManagement>部分。