Gradle无法在代理后面编译

时间:2014-08-18 17:15:46

标签: proxy gradle android-studio android-gradle

我正在尝试编译代理背后的Android项目。我的大多数依赖项都编译得很好,但是当我将Robolectric添加到build.gradle类路径时,我总是会遇到错误。所以我的第一个代理配置在Preferences -> HTTP Proxy完成。当我尝试使用这些设置进行编译时,我收到了407响应:

Error:Could not HEAD 'http://repo1.maven.org/maven2/org/robolectric/robolectric-gradle-plugin/0.12.0/robolectric-gradle-plugin-0.12.0.jar'. Received status code 407 from server: AuthorizedOnly

由于我在HTTP Proxy设置中提供了凭据,因此这没有任何意义。另外,我在HTTP Proxy页面上尝试了test-url函数,它表示连接成功。

然后我尝试在gradle.properties文件中添加设置。然后,它给了我以下500错误:

Error:Could not HEAD 'http://repo1.maven.org/maven2/org/robolectric/robolectric-gradle-plugin/0.12.0/robolectric-gradle-plugin-0.12.0.jar'. Received status code 500 from server: ruleengineerror

有什么设置我忘记了吗?为什么我的mavenCentral中的其他依赖项能够编译?我刚刚进口了这个产品,所以我没有开始使用缓存,如果我把Robolectric拿出来就可以编译好。

任何帮助将不胜感激。如果这太局部化,我会提前道歉。

2 个答案:

答案 0 :(得分:1)

对于遇到此问题的任何人,我终于找到了一个解决方案,让我顺利地下载代理后面的所有依赖项。

我正在尝试在NTLM代理背后工作,这对我来说与Gradle没有很好地合作。为了解决这个问题,我下载了SquidMan并进行了设置。像其他一些人在其他帖子中建议的那样,我正在建立一个中介代理来转发我的请求并将我的凭据输入主代理。

设定:

  1. 在SquidMan中,转到Preferences-> General。这里输入中间代理的代理配置。我选择了127.0.0.1作为主机名和端口9090。
  2. 转到父母并输入您的公司/主要代理信息。
  3. 启动SquidMan
  4. 在全局Gradle位置(〜/ .gradle)
  5. 中打开gradle.properties文件
  6. 输入:
    systemProp.http.proxyHost = 127.0.0.1 systemProp.http.proxyPort = 9090 systemProp.https.proxyHost = 127.0.0.1 systemProp.https.proxyPort = 9090
  7. Gradle现在应该可以顺利下载代理服务器后面的依赖项。

    希望这有助于某人!

答案 1 :(得分:0)

Robolectric利用Maven配置进行依赖解析(非常奇怪)。看看我为答案写的这篇博客文章。

Robolectric and Gradle behind Proxies and Firewalls

为了进一步说明这一点,您需要使用代理信息配置.m2 / settings.xml。