我是maven 2的初学者,我的项目中有一个jar版本的问题。
我在pom.xml
中声明了以下依赖项:
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
但是当我建立战争时,我得到了该神器的1.0.3版本。怎么可能!?最重要的是,我的存储库中提供了版本1.1.1。
如何看待它来自哪里?
我是这个项目的新维护者。父pom声明了这个版本,战争的pom继承了父母的pom。
答案 0 :(得分:2)
但是在我的战争中我发现版本1.0.3。怎么可能? (...)如何看待它的来源?
您很可能传递这种依赖关系(即您依赖于具有commons-logging-1.0.3.jar作为依赖关系的工件,并且您从此工件获取它)。要检查它来自哪里,您可以使用Maven Dependency Plugin打印“依赖关系树”(也可以find conflicts):
mvn dependency:tree
现在,要解决问题并控制传递依赖项中使用的版本,解决方案是在dependencyManagement
元素下声明您的依赖项:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</dependencyManagement>