在我的 Java 项目的 build.gradle 中,我有一个 Maven 存储库列表,我指向它以进行依赖关系解析,如下所示:
repositories {
maven { url "https://artifactory.myco.com/artifactory/maven-us-east-1-local" } maven { url "https://artifactory.myco.com/artifactory/maven_snapshots-us-east-1-local" } mavenCentral() }
当 gradle 尝试查看非快照依赖项是否存在于那里时,它看起来像 barfs 上方的快照存储库,因为它按顺序遍历并联系每个存储库。在工件中,它已经配置了一个策略,当它被询问它是否具有非快照依赖项时,它会发回 409 冲突。这就是我得到的:
./gradlew build . . . FAILURE: Build failed with an exception.
- What went wrong: Could not resolve all dependencies for configuration > 'com.myco.project:pgs_common:compile'. Could not resolve mydep:mydep:1.0.9. Required by: com.myco.project:pgs_common:1.28.0-SNAPSHOT
Could not resolve mydep:mydep:1.0.9 Could not get resource 'https://artifactory.myco.com/artifactory/maven_snapshots-us-east-1-local/mydep/mydep/1.0.9/mydep-1.0.9.pom'. Could not GET > 'https://artifactory.myco.com/artifactory/maven_snapshots-us-east-1-local/mydep/mydep/1.0.9/mydep-1.0.9.pom'. Received status code 409 from server: Conflict
gradle 中有没有办法告诉它不要为非快照依赖项而联系该 repo?在 Maven 中,您可以在存储库声明中添加额外的属性,告诉 Maven 它是否允许发布依赖项、快照依赖项或两者(默认)。
谢谢。
最佳答案
Gradle 4.x 和 5.x 也有类似的问题,解决方法是使用 Gradle 2.x。
通过使用 Gradle 2.x 不会停止 Gradle 从发布存储库中搜索非快照库,但至少 Gradle 可以找到正派。
关于gradle - 强制 Gradle 解决来自不同 repo 的快照依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636114/