【发布时间】:2021-12-29 09:13:47
【问题描述】:
在两个不同的 maven 项目中,我们包含相同的依赖项:hibernate-validator7.0.1.Final,如下所示:
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.1.Final</version>
</dependency>
运行 mvn dependency:list 会得到以下结果。
项目 A:
[INFO] +- org.hibernate.validator:hibernate-validator:jar:7.0.1.Final:compile
[INFO] | +- jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.4.2.Final:compile
[INFO] | \- com.fasterxml:classmate:jar:1.5.1:compile
为这个项目运行 mvn dependency:list-repositories 给出:
[INFO] Repositories used by this build:
[INFO] id: sonatype-nexus-snapshots
url: https://oss.sonatype.org/content/repositories/snapshots
layout: default
snapshots: [enabled => true, update => daily]
releases: [enabled => false, update => daily]
[INFO] id: spy
url: http://files.couchbase.com/maven2/
layout: default
snapshots: [enabled => false, update => daily]
releases: [enabled => true, update => daily]
[INFO] id: apache.snapshots
url: http://repository.apache.org/snapshots
layout: default
snapshots: [enabled => true, update => daily]
releases: [enabled => false, update => daily]
[INFO] id: apache.snapshots
url: https://repository.apache.org/snapshots
layout: default
snapshots: [enabled => true, update => daily]
releases: [enabled => false, update => daily]
[INFO] id: shibboleth-repo
url: https://build.shibboleth.net/nexus/content/repositories/releases/
layout: default
snapshots: [enabled => true, update => daily]
releases: [enabled => true, update => daily]
[INFO] id: central
url: https://repo.maven.apache.org/maven2
layout: default
snapshots: [enabled => false, update => daily]
releases: [enabled => true, update => daily]
项目 B:
[INFO] +- org.hibernate.validator:hibernate-validator:jar:7.0.1.Final:compile
[INFO] | +- jakarta.validation:jakarta.validation-api:jar:3.0.0:compile
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
[INFO] | \- com.fasterxml:classmate:jar:1.5.1:compile
为这个项目运行 mvn dependency:list-repositories 给出:
[INFO] Repositories Used by this build:
[INFO] id: central
url: https://repo.maven.apache.org/maven2
layout: default
snapshots: [enabled => false, update => daily]
releases: [enabled => true, update => daily]
[INFO] id: project.local
url: file:C:\*****\*****/repo
layout: default
snapshots: [enabled => true, update => daily]
releases: [enabled => true, update => daily]
[INFO] id: apache.snapshots
url: https://repository.apache.org/snapshots
layout: default
snapshots: [enabled => true, update => daily]
releases: [enabled => false, update => daily]
到目前为止,我认为依赖项的依赖项总是相同的,因为版本是相同的,但这个结果让我怀疑。
这与项目中的其他依赖项有关吗? 这可能是项目使用不同存储库的结果吗?
【问题讨论】:
-
首先我们需要拥有两个项目的完整 pom 文件,因为罪魁祸首在那里......要么项目使用不同的版本显式或具有使用不同版本的依赖项......