1

这是我偶然发现的一个真实例子。我有带有以下声明的 spring-context 工件(spring.version 是 3.2.4.RELEASE):

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context</artifactId>
   <version>${spring.version}</version>
</dependency>

如果您检查此页面http://www.mvnrepository.com/artifact/org.springframework/spring-context/3.2.4.RELEASE您将在段落中看到(此工件取决于...)所有依赖项使用上述声明时导入。其中之一是休眠验证器(4.3.0.FINAL)。

稍后,我决定在我的 pom.xml 文件中使用另一个版本的 hibernate-validator(例如,因为它更新)并声明以下代码:

<dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-validator</artifactId>
     <version>4.3.1.Final</version>
</dependency>

现在看来我的项目正在导入两个不同版本的hibernate-validator。项目正在使用哪一个?谢谢你。

4

2 回答 2

6

神奇的词是distance:使用最接近您的项目的词。因此,如果您在项目 pom 中定义它,则使用那个。您还可以检查maven-dependency-plugin,它有几个目标,可以向您显示以不同方式使用哪个版本。

于 2013-09-07T14:00:36.377 回答
2

我发现这对查看我使用的依赖项很有用: http ://maven.apache.org/plugins/maven-dependency-plugin/examples/filtering-the-dependency-tree.html

基本上在 cmd 上只需键入:

mvn dependency:tree

它将显示项目的所有依赖项。

类型

mvn dependency:tree -Dincludes=velocity:velocity

它只会显示速度的依赖关系树。(输入的模式是 groupId:artifactId)。

于 2013-09-08T06:21:00.850 回答