【问题标题】:org.apache.tools.ant.BuildException Caused by: org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException when Running build in Jenkinsorg.apache.tools.ant.BuildException 原因:在 Jenkins 中运行构建时出现 org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException
【发布时间】:2021-06-16 04:50:02
【问题描述】:

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

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

当我查看互联网时,我知道这是因为 jenkins 阻止了互联网,如果它无法下载依赖项,它将因预期而失败。但是当我联系 jenkins 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"

那么这里有什么问题呢?

【问题讨论】:

    标签: android android-studio jenkins


    【解决方案1】:

    这是 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{...} 中添加此内容才能解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多