在build.gradle
中,我们可以声明多个存储库,包括自定义Maven存储库。就我而言,我使用两个自定义的Maven存储库:一个用于发行版,一个用于快照。还有一个mavenCentral
存储库。例如:
repositories {
maven {
url 'http://xxxx:8080/repository/internal'
}
maven {
url 'http://xxxx:8080/repository/snapshots'
}
mavenCentral()
}
dependencies {
compile 'xxxx:xxxx:1.0-SNAPSHOT'
}
Gradle
2.x可以从http://xxxx:8080/repository/snapshots解析SNAPSHOT
库。但是,Gradle
4.x和5.x无法解析SNAPSHOT
库。
在https://docs.gradle.org/current/userguide/declaring_repositories.html中,我看不到使用多个存储库的任何特殊要求,不确定什么地方出错了。
答案 0 :(得分:0)
如果第一个存储库中存在工件,则Gradle将忽略Gradle 4.x中的第二个工件。我不记得Gradle 2.x中的确切行为,但确实可能完全不同。
解决此问题的一种方法是,假设第二个存储库从不包含发行工件,则将切换存储库的顺序。另一种解决方案是清除internal
中的所有快照。
如果此答案无济于事,请提供更多上下文,例如错误消息和堆栈跟踪。
答案 1 :(得分:0)
14:17:50: Executing task 'build'...
任务:compileJava失败
失败:构建失败,并出现异常。
无法解析com.xxx.yyy:lpp-interface:1.0.23。 要求: 项目: 无法解析com.xxx.yyy:lpp-interface:1.0.23。 无法获取资源“ http://xxx-mirror-maven:8080/repository/snapshots/com/xxx/yyy/lpp-interface/1.0.23/lpp-interface-1.0.23.pom”。 无法HEAD'http://xxx-mirror-maven:8080/repository/snapshots/com/xxx/yyy/lpp-interface/1.0.23/lpp-interface-1.0.23.pom'。从服务器接收到状态码500:无法获取工件资源。