我有一个基于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版本。 我该如何正确处理?
答案 0 :(得分:1)
您的第一个解决方案是一种(正确的)可能性。直接依赖项中的版本号总是获胜。如果它不适合您,则可能是您犯了一个错误(错误的groupId,未重建或更新等)
另一种更优雅的解决方案是添加
<dependency>
<groupId>com.exampe.test</groupId>
<artifactId>ABC</artifactId>
<version>1.4</version>
</dependency>
转到您的<dependencyManagement>
部分。