我一直在努力让Gradle在我们的持续集成服务器上运行,该服务器无法访问互联网(外部)URL。
目前,我们从内部代理服务器获取maven风格的依赖项。所以我也将gradle包装器上传到该服务器上,这样当CI服务器启动时,它可以从内部maven代理服务器下载包装器。
问题解决了,我想;构建将继续从内部代理服务器继承和下拉项目依赖项(它在构建脚本中设置),现在应该没问题。
但是在获取包装器Zip文件和启动构建之间,它正在执行以下操作:
Downloading http://maven.internal.mycompany.com:8081/nexus/content/repositories/thirdparty/org/gradle/gradle/1.0-milestone-3/gradle-1.0-milestone-3-bin.zip ................
Unzipping /home/user/.gradle/wrapper/dists/gradle-1.0-milestone-3-bin.zip to /home/user/.gradle/wrapper/dists
Set executable permissions for: /home/user/.gradle/wrapper/dists/gradle-1.0-milestone-3/bin/gradle
Download http://repo1.maven.org/maven2/org/codehaus/groovy/groovy/1.7.3/groovy-1.7.3.pom
Download http://repo1.maven.org/maven2/antlr/antlr/2.7.7/antlr-2.7.7.pom
etc...
*** then the actual build starts ***
Download http://maven.internal.mycompany.com:8081/nexus/content/groups/public/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
E.g。它试图从连续集成服务器上的 repo1.maven.org 中删除gradle可执行文件的额外依赖项,因为它无权访问此服务器。
在我的build.gradle文件中,我有:
repositories {
mavenRepo urls: "http://maven.internal.mycompany.com:8081/nexus/content/groups/public"
}
在我的./gradle/wrapper/gradle-wrapper.properties文件中我有:
distributionUrl=http\://maven.internal.mycompany.com:8081/nexus/content/repositories/thirdparty/org/gradle/gradle/1.0-milestone-3/gradle-1.0-milestone-3-bin.zip
那么还有另一个地方我可以指定包装器应该使用哪个服务器来获得它的附加依赖项吗?或者这是硬编码到包装器本身?或者我可能在这里错过了一个技巧,因为谷歌似乎根本没有出现任何其他人有这个问题!
本
答案 0 :(得分:2)
从另一个导致我得到答案的论坛中获取了一个提示 - 如果我自己的gradle构建文件包含默认的maven存储库,那么我正在删除它的插件。
我现在已经删除了,并且对外部maven的调用已经停止。