Java 当我在同一pom文件中声明两个不同版本时,哪个maven依赖项占优势?

Java 当我在同一pom文件中声明两个不同版本时,哪个maven依赖项占优势?,java,spring,hibernate,maven,Java,Spring,Hibernate,Maven,这是我偶然发现的一个真实的例子。 我正在使用具有以下声明的spring上下文工件(spring.version是3.2.4.RELEASE): org.springframework 您将在段落(此工件取决于…)中看到使用上述声明时导入的所有依赖项。 其中之一是hibernate验证器(4.3.0.FINAL) 稍后,我决定在pom.xml文件中使用另一个版本的hibernate validator(例如,因为它较新),并声明以下代码: <dependency> <

这是我偶然发现的一个真实的例子。 我正在使用具有以下声明的spring上下文工件(spring.version是3.2.4.RELEASE):


org.springframework
您将在段落(此工件取决于…)中看到使用上述声明时导入的所有依赖项。
其中之一是hibernate验证器(4.3.0.FINAL)

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

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

org.hibernate
休眠验证器
4.3.1.最终版本
现在,我的项目似乎正在导入两个不同版本的hibernate验证器。 项目正在使用哪一个?
谢谢。

神奇的词语是距离:使用最接近您的项目的一个。所以,如果您在项目pom中定义了它,就会使用它。您还可以检查具有多个目标的,这些目标可以显示以不同方式使用的版本。

神奇的词语是距离:使用最接近您的项目的目标。所以,如果您在项目pom中定义了它,就会使用它。您还可以检查,它有几个目标,可以显示以不同方式使用的版本。

我发现这有助于查看我使用的依赖项:

基本上在cmd上,只需键入:

mvn dependency:tree
它将显示项目的所有依赖项

类型


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

我发现这有助于查看我使用的依赖项:

基本上在cmd上,只需键入:

mvn dependency:tree
它将显示项目的所有依赖项

类型


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

以您的声明为准。您还可以使用
mvn dependency:list
,也可以查看您的声明。您还可以通过使用
mvn dependency:list
,了解我可以从IntelliJ IDEA内部使用这个插件吗?我是一个Eclipse用户,但我非常确定IntelliJ中的Maven集成已经足够好,可以向您展示所使用的依赖项。此插件主要用于cmdline,但也可以从任何IDE执行。我可以从IntelliJ IDEA内部使用此插件吗?我是Eclipse用户,但我非常确定IntelliJ中Maven的集成已经足够好,可以向您展示所使用的依赖项。此插件主要用于cmdline,但也可以从任何IDE执行。
mvn dependency:tree -Dincludes=velocity:velocity