我正在尝试使用Cordova构建一个用于Android的Sencha Touch应用程序。但是,在gradle构建开始后,我尝试连接到maven repo时出现连接错误:
[INF] [shellscript] Running: C:\xxx\gradlew cdvBuildDebug -b C:\xxx\application\cordova\platforms\android\build.gradle -Dorg.gradle.daemon=true
[INF] [shellscript]
[INF] [shellscript] FAILURE: Build failed with an exception.
[INF] [shellscript]
[INF] [shellscript] * What went wrong:
[INF] [shellscript] A problem occurred configuring root project '''android'''.
[INF] [shellscript] > Could not resolve all dependencies for configuration ''':classpath'''.
[INF] [shellscript] > Could not resolve com.android.tools.build:gradle:1.0.0+.
[INF] [shellscript] Required by:
[INF] [shellscript] :android:unspecified
[INF] [shellscript] > Failed to list versions for com.android.tools.build:gradle.
[INF] [shellscript] > Unable to load Maven meta-data from https://repo1
.maven.org/maven2/com/android/tools/build/gradle/maven-metadata.xml.
[INF] [shellscript] > Could not GET '''https://repo1.maven.org/maven
2/com/android/tools/build/gradle/maven-metadata.xml'''.
[INF] [shellscript] > Connection to https://repo1.maven.org refused
我认为这与我必须在办公室连接的公司代理有关 - 但我不确定如何配置Gradle通过此代理进行连接,因为它是由Cordova执行的,它本身就是由Sencha Cmd执行。
有没有办法用Sencha配置代理?
答案 0 :(得分:48)
您需要将Gradlew配置为使用代理服务器。这可以通过创建包含以下内容的 gradle.properties 文件来完成:
systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost
systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost
这是一个取自Chapter 19.3 of the User Guide的例子。确保在文件中包含HTTP和HTTPS值。
您可以将 gradle.properties 文件放在以下任一位置:
OR
我建议将它放在Gradle home中,这样其他项目就可以把它拿起来,你不必担心将它置于源代码控制之下。
您还可以在this post中找到更多信息。
答案 1 :(得分:0)
我有同样的错误,但是在我安装了git后又改变了我的环境变量。我回到那里删除添加的路径,它工作