试图让Jenkins在我的公司代理后面构建我的java库项目,并在下载发行版时保持超时.我已经按照许多指南试图让gradle在gradle.properties
文件构建中使用代理设置它似乎不起作用.我知道proxyHost和proxyPort是正确的.有什么东西我可以忽略或者除了代理之外它是一个不同的问题吗?
的build.gradle
apply plugin: 'java' apply plugin: 'maven' apply plugin: 'maven-publish' apply plugin: 'idea' sourceCompatibility = 1.8 def baseVersion = "1.0" def jenkinsBuildNumber = System.getenv('BUILD_NUMBER') version = jenkinsBuildNumber != null ? baseVersion + "." + jenkinsBuildNumber : baseVersion println 'Version: ' + version group = 'com.company.MyLibrary' repositories { mavenCentral() } apply plugin: 'groovy' jar { from "LICENSE.md" } dependencies { compile "com.google.guava:guava:19.0" compile "junit:junit:4.12" compile "org.assertj:assertj-core:3.2.0" compile "org.mockito:mockito-core:2.0.31-beta" compile "org.powermock:powermock-module-junit4:1.6.2" compile "org.powermock:powermock-api-mockito:1.6.2" testCompile "com.google.guava:guava:19.0" testCompile "junit:junit:4.12" testCompile "org.assertj:assertj-core:3.2.0" testCompile "org.mockito:mockito-core:2.0.31-beta" testCompile "org.powermock:powermock-module-junit4:1.6.2" testCompile "org.powermock:powermock-api-mockito:1.6.2" } task sourcesJar(type: Jar) { dependsOn classes classifier 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir } artifacts { archives sourcesJar archives javadocJar } task wrapper(type: Wrapper) { gradleVersion = '2.10' distributionUrl = "http://services.gradle.org/distributions/gradle-${gradleVersion}-all.zip" }
gradle.properties
systemProp.https.proxyHost=proxy.company.net systemProp.https.proxyPort=8989 systemProp.http.proxyHost=proxy.company.net systemProp.http.proxyPort=8989 systemProp.https.nonProxyHosts=*.company.com|localhost org.gradle.daemon=true
Jenkins控制台输出
20:45:09 Started by an SCM change 20:45:09 [EnvInject] - Loading node environment variables. 20:45:09 Building on master in workspace /var/lib/jenkins/workspace/MyLibrary 20:45:09 [WS-CLEANUP] Deleting project workspace... 20:45:09 [WS-CLEANUP] Done 20:45:09 Cloning the remote Git repository 20:45:09 Cloning repository ssh://git@git.company.net/~jon/MyLibrary.git 20:45:09 > git init /var/lib/jenkins/workspace/MyLibrary # timeout=10 20:45:09 Fetching upstream changes from ssh://git@git.company.net/~jon/MyLibrary.git 20:45:09 > git --version # timeout=10 20:45:09 > git -c core.askpass=true fetch --tags --progress ssh://git@git.company.net/~jon/MyLibrary.git +refs/heads/*:refs/remotes/origin/* 20:45:10 > git config remote.origin.url ssh://git@git.company.net/~jon/MyLibrary.git # timeout=10 20:45:10 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 20:45:10 > git config remote.origin.url ssh://git@git.company.net/~jon/MyLibrary.git # timeout=10 20:45:10 Fetching upstream changes from ssh://git@git.company.net/~jon/MyLibrary.git 20:45:10 > git -c core.askpass=true fetch --tags --progress ssh://git@git.company.net/~jon/MyLibrary.git +refs/heads/*:refs/remotes/origin/* 20:45:11 Seen branch in repository origin/master 20:45:11 Seen 1 remote branch 20:45:11 Checking out Revision 2ece1927e5fb1d368aba28a107f6fe2c2accb9fa (origin/master) 20:45:11 > git config core.sparsecheckout # timeout=10 20:45:11 > git checkout -f 2ece1927e5fb1d368aba28a107f6fe2c2accb9fa 20:45:11 > git rev-list 66fe56731f935be83c91e38ced426aea7bba0b8f # timeout=10 20:45:11 [EnvInject] - Injecting environment variables from a build step. 20:45:11 [Gradle] - Launching build. 20:45:11 [MyLibrary] $ /var/lib/jenkins/workspace/MyLibrary/gradlew -Dcommit=master clean test 20:45:11 Downloading http://services.gradle.org/distributions/gradle-2.10-all.zip 20:47:18 20:47:18 Exception in thread "main" java.net.ConnectException: Connection timed out 20:47:18 at java.net.PlainSocketImpl.socketConnect(Native Method) 20:47:18 at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 20:47:18 at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 20:47:18 at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 20:47:18 at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 20:47:18 at java.net.Socket.connect(Socket.java:589) 20:47:18 at java.net.Socket.connect(Socket.java:538) 20:47:18 at sun.net.NetworkClient.doConnect(NetworkClient.java:180) 20:47:18 at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 20:47:18 at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 20:47:18 at sun.net.www.http.HttpClient.(HttpClient.java:211) 20:47:18 at sun.net.www.http.HttpClient.New(HttpClient.java:308) 20:47:18 at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1175) 20:47:18 at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1123) 20:47:18 at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:998) 20:47:18 at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:932) 20:47:18 at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1512) 20:47:18 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440) 20:47:18 at org.gradle.wrapper.Download.downloadInternal(Download.java:58) 20:47:18 at org.gradle.wrapper.Download.download(Download.java:44) 20:47:18 at org.gradle.wrapper.Install$1.call(Install.java:61) 20:47:18 at org.gradle.wrapper.Install$1.call(Install.java:48) 20:47:18 at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65) 20:47:18 at org.gradle.wrapper.Install.createDist(Install.java:48) 20:47:18 at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128) 20:47:18 at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) 20:47:18 Build step 'Invoke Gradle script' changed build result to FAILURE 20:47:18 Build step 'Invoke Gradle script' marked build as failure 20:47:18 Finished: FAILURE
Jon Erickson.. 19
我的解决方案是~/.gradle/gradle.properties
使用正确的代理设置更新我的全局文件:
org.gradle.daemon=true systemProp.https.proxyHost=proxy.company.net systemProp.https.proxyPort=8181 systemProp.http.proxyHost=proxy.company.net systemProp.http.proxyPort=8181 systemProp.https.nonProxyHosts=*.company.com|localhost
这实际上与将它们作为命令行参数传递给gradlew
(./gradlew -Dhttp.proxyHost=xxx -Dhttp.proxyPort=xxx -Dhttps.proxyHost=xxx -Dhttps.proxyPort=xxx
我的解决方案是~/.gradle/gradle.properties
使用正确的代理设置更新我的全局文件:
org.gradle.daemon=true systemProp.https.proxyHost=proxy.company.net systemProp.https.proxyPort=8181 systemProp.http.proxyHost=proxy.company.net systemProp.http.proxyPort=8181 systemProp.https.nonProxyHosts=*.company.com|localhost
这实际上与将它们作为命令行参数传递给gradlew
(./gradlew -Dhttp.proxyHost=xxx -Dhttp.proxyPort=xxx -Dhttps.proxyHost=xxx -Dhttps.proxyPort=xxx