在两个不同的maven项目中,我们包含相同的依赖项:hibernate-validator 7.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]到目前为止,我认为依赖项的依赖关系总是一样的,考虑到版本是相同的,但是这个结果让我怀疑这一点。
这是否与项目中的其他依赖关系有关?这可能是项目使用不同存储库的结果吗?
发布于 2021-12-29 21:37:25
org.hibernate.validator:hibernate-validator:jar:7.0.1.Final的依赖项可以在MvnRespository上找到。此工件的编译依赖部分显示了使用jakarta.validation:jakarta.validation-api:jar:3.0.0和org.jboss.log:jboss:jar:3.4.1(除其他外)。
这意味着在项目A中,某些东西实际上覆盖了那些传递的依赖项。您可以查看下面的链接以获得更多的信息。基本上,项目api(或该项目的父pom )声明了对jakarta.validation-api和jboss的依赖关系,然后由Maven在搜索“最近的定义”依赖项时进行选择。
https://stackoverflow.com/questions/70517344
复制相似问题