在代理后面的IDEA中运行Robolectric

时间:2013-12-17 13:47:05

标签: android macos proxy intellij-idea robolectric

我有公司环境,所有http和https电话都在代理服务器后面。

通过将 http_proxy 环境变量导出到.profile文件中,我能够解决命令行下载的一些问题。

但是在第一次运行之前下载Android源代码或类的Robolectric 2.2我失败了。我还没有CI设置,所以我只是想从想法中运行测试。

有人知道热修复吗?

我尝试在IDEA设置中提供代理,我尝试在运行配置中提供其他环境变量。什么都没有帮助

UPD 当我在Mac设置中指定代理时,它会产生另一个错误: 无法找到资源'org.sonatype.oss:oss-parent:pom:7'在存储库sonatype(https://oss.sonatype.org/content/groups/public/

看起来我可能正在使用或缺少Robolectirc错误的传递依赖(我不使用maven或常春藤,我刚刚从maven中心下载了jar)

UPD2 没有,只是再次超时:传输文件时出错:操作超时

3 个答案:

答案 0 :(得分:6)

我知道这有点旧问题但是如果你想使用代理,你应该将以下文件放在你的home / .m2目录中:

<强>的settings.xml

<settings>
    <proxies>
        <proxy>
            <active>true</active>
            <protocol>http</protocol>
            <host>your_host_here</host>
            <port>your_port_here</port>
        </proxy>
    </proxies>
</settings>

请参阅此处https://docs.gradle.org/current/userguide/build_environment.html

答案 1 :(得分:1)

为旧问题添加另一个迟到的答案:)由于Robolectric 2.4引入了两个属性来帮助您在CI中的Robolectric测试运行在代理服务器后面的情况:

您必须在build.gradle文件中指定robolectric.offlinerobolectric.dependency.dir。像这样:

afterEvaluate {
    project.tasks.withType(Test) {
        systemProperties.put('robolectric.offline', 'true')
        systemProperties.put('robolectric.dependency.dir', "${project.rootDir}/.robolectric/")
    }
}

然后你需要从maven或sonatype下载必要的jar并将它放在你指定的目录中......

我写了一篇blog post,其中包含更多细节。

答案 2 :(得分:0)

如果这有助于某人。在settings.xml中设置代理(我尝试了这个文件的两个可能路径)对我来说不起作用。我最终将其作为一个参数传递: .padding { padding-top: 50px;