org.apache.tools.ant.BuildException由以下原因引起:org.apache.maven.



当我从工作室运行测试用例时,所有测试用例都通过了,没有任何问题。但由于以下异常,它在詹金斯失败了

org.apache.tools.ant.BuildException 
Caused by: org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException

当我查看互联网时,我知道这是因为詹金斯阻止了互联网,如果它无法下载依赖性,它将无法实现这一预期。但当我联系詹金斯it团队时,他们告知,如果我们在配置中传递代理,它总是会提供互联网。我已经通过如下。

sh "export ANDROID_HOME=/var/buildtools/android && export JAVA_HOME=/usr/java/jdk1.8.0_161 && export PATH=$PATH:/var/buildtools/gradle-4.10.1/bin && gradle -Dhttp.proxyHost=$http_proxy -Dhttp.proxyPort=$http_proxy_port -Dhttps.proxyHost=$https_proxy -Dhttps.proxyPort=$https_proxy_port assembleRelease codeCoverageReport"

那么这里的问题是什么呢?

这是roboelectric的一个问题,它试图在运行时下载一些依赖项,jenkins会阻止它,因为我们传递的代理不适用,如果它在运行时正在下载的话。因此,我们必须给出单元测试的代理,如下

testOptions {
unitTests.all {
systemProperty 'http.proxyHost', 'xxx.xx.xxx.xxx'
systemProperty 'http.proxyPort', 'xxxx'
systemProperty 'https.proxyHost', 'xxx.xx.xxx.xxx'
systemProperty 'https.proxyPort', 'xxxx'
}
unitTests{
returnDefaultValues = true
includeAndroidResources = true
}
}

必须在解决问题的android{...}中添加此内容。

最新更新