Gradleでプロキシーの設定ってどうやるの?
プロキシー設定が必要な会社内で、Greziを動かそうとしたらエラーになった。
いろいろ試してみたけど、ダメだ。
エラー
Greziを使った場合
:compileJava UP-TO-DATE :compileGroovy FAILURE: Build failed with an exception. * What went wrong: Could not resolve group:asm, module:asm, version:3.2. Required by: com.odelia.grezi:bgoetzmann-grezi-tip:0.1-SNAPSHOT Cause: java.lang.reflect.UndeclaredThrowableException (no error message) * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED
簡単なアプリとbuild.gradle
println new URL("http://www.google.co.jp/").getText()
apply plugin: 'groovy' sourceSets { main.groovy.srcDir 'src' } repositories { mavenCentral() flatDir(dirs: 'libs') } dependencies { groovy 'org.codehaus.groovy:groovy-all:1.8.0' } task testProxy(type: JavaExec) { description = "Run testProxy'" main = "testProxy" classpath = sourceSets.main.runtimeClasspath args "testProxy.groovy" }
エラー
[D:\workspace\GroovySample\gradle\proxy]gradle testProxy :compileJava UP-TO-DATE :compileGroovy UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :testProxy Exception in thread "main" java.net.UnknownHostException: www.google.co.jp at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177) at java.net.Socket.connect(Socket.java:519) at java.net.Socket.connect(Socket.java:469) at sun.net.NetworkClient.doConnect(NetworkClient.java:157) at sun.net.www.http.HttpClient.openServer(HttpClient.java:394) at sun.net.www.http.HttpClient.openServer(HttpClient.java:529) at sun.net.www.http.HttpClient.<init>(HttpClient.java:233) at sun.net.www.http.HttpClient.New(HttpClient.java:306) at sun.net.www.http.HttpClient.New(HttpClient.java:323) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:788) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:729) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:654) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977) at org.codehaus.groovy.runtime.DefaultGroovyMethods.newReader(DefaultGroovyMethods.java:14191) at org.codehaus.groovy.runtime.DefaultGroovyMethods.getText(DefaultGroovyMethods.java:12649) at org.codehaus.groovy.runtime.DefaultGroovyMethods.getText(DefaultGroovyMethods.java:12634) at org.codehaus.groovy.runtime.dgm$315.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) at testProxy.run(testProxy.groovy:1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1055) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:885) at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:793) at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:776) at org.codehaus.groovy.runtime.InvokerHelper.runScript(InvokerHelper.java:394) at org.codehaus.groovy.runtime.InvokerHelper$runScript.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at testProxy.main(testProxy.groovy) FAILURE: Build failed with an exception.
試したこと
12.3. Accessing the web via a proxyを参考にあれこれ。
- gradle.propertiesをカレントに置く
systemProp.proxySet='true' systemProp.http.proxyHost='プロキシーサーバー' systemProp.http.proxyPort='8080'
- gradle.propertiesをホーム(C:\Documents and Settings\orangeclover\.gradle)に置く
systemProp.proxySet='true' systemProp.http.proxyHost='プロキシーサーバー' systemProp.http.proxyPort='8080'
- gradle.properties 「http.」なし
systemProp.proxySet='true' systemProp.proxyHost='プロキシーサーバー' systemProp.proxyPort='8080'
- build.gradle に設定する
System.properties['proxySet']='true' System.properties['proxyHost']='プロキシーサーバー' System.properties['proxyPort']='8080'
- build.gradle 「http.」なし
System.properties['proxySet']='true' System.properties['http.proxyHost']='プロキシーサーバー' System.properties['http.proxyPort']='8080'
- JAVA_OPTSに設定する
set JAVA_OPTS=-Dhttp.proxyHost=プロキシーサーバー -Dhttp.proxyPort=8080
- JAVA_OPTSに設定する 「http.」なし
set JAVA_OPTS=-DproxyHost=プロキシーサーバー -DproxyPort=8080
- gradleに-D指定
gradle -Dhttp.proxyHost=プロキシーサーバー -Dhttp.proxyPort=8080
- gradleに-D指定「http.」なし
gradle -DproxyHost=プロキシーサーバー -DproxyPort=8080
- gradle.bat のDEFAULT_JVM_OPTSに設定
set DEFAULT_JVM_OPTS=-Dhttp.proxyHost=プロキシーサーバー -DproxyPort=8080
- gradle.bat のDEFAULT_JVM_OPTSに設定「http.」なし
set DEFAULT_JVM_OPTS="-DproxyHost=プロキシーサーバー -DproxyPort=8080"
- gradle.bat
set DEFAULT_JVM_OPTS=-Dhttp.proxyHost=プロキシーサーバー -Dhttp.proxyPort=8080
- gradle.bat のGRADLE_OPTSに設定「http.」なし
set GRADLE_OPTS="-DproxyHost=プロキシーサーバー -DproxyPort=8080"
- gradle.bat のGRADLE_OPTSに設定
set GRADLE_OPTS="-Dhttp.proxyHost=プロキシーサーバー -Dhttp.proxyPort=8080"
- gradle.bat のJavaコマンドオプションに直書き
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -Dhttp.proxyHost=プロキシーサーバー -Dhttp.proxyPort=8080 -classpath "%CLASSPATH%" org.gradle.launcher.GradleMain %CMD_LINE_ARGS%
- gradle.bat のJavaコマンドオプションに直書き「http.」なし
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -DproxyHost=プロキシーサーバー -DproxyPort=8080 -classpath "%CLASSPATH%" org.gradle.launcher.GradleMain %CMD_LINE_ARGS%
Groovyにプロキシを設定した場合
プロキシ設定ない場合
[C:\bin\grezi\bgoetzmann-grezi-tip]groovy -c UTF-8 D:\workspace\GroovySample\Groovy\JGGUG_Camp2011\GDK48\1341142\introfx.groovy Caught: java.net.UnknownHostException: www.googleapis.com java.net.UnknownHostException: www.googleapis.com at introfx.run(introfx.groovy:6)
エラーになる
プロキシー設定アリの場合
[C:\bin\grezi\bgoetzmann-grezi-tip]groovy -c UTF-8 -Dhttp.proxyHost=プロキシーサーバー -Dhttp.proxyPort=8080 D:\workspace\GroovySample\Groovy\JGGUG_Camp2011\GDK48\1 Caught: java.net.UnknownHostException: www.googleapis.com java.net.UnknownHostException: www.googleapis.com at introfx.run(introfx.groovy:6)
プロキシー設定アリの場合 「http.」なし
[C:\bin\grezi\bgoetzmann-grezi-tip]groovy -c UTF-8 -DproxyHost=プロキシーサーバー -DproxyPort=8080 D:\workspace\GroovySample\Groovy\JGGUG_Camp2011\GDK48\1341142\intr loves Java, Groovy, Apple products and gadgets
動作する
[C:\bin\grezi\bgoetzmann-grezi-tip]set JAVA_OPTS=-DproxyHost=プロキシーサーバー -DproxyPort=8080 [C:\bin\grezi\bgoetzmann-grezi-tip]groovy -c UTF-8 D:\workspace\GroovySample\Groovy\JGGUG_Camp2011\GDK48\1341142\introfx.groovy loves Java, Groovy, Apple products and gadgets
動作する
Groovyだと有効になるので、プロキシーサーバの指定に誤りがあるわけでもない。
Gradleでプロキシーサーバを指定するのってどうやるの?
もしかして、プロキシーの問題ではない??
明日、-debug付けたログを確認しよう・・・
コメント
ksky 2011/12/07 13:45 つ http://issues.gradle.org/browse/GRADLE-1962
既知の問題のようだ。
教えてくれてありがとう