【问题标题】:Jenkins 2 - Sonar 6.3 - JaCoCo report not foundJenkins 2 - Sonar 6.3 - JaCoCo 报告未找到
【发布时间】:2017-10-19 13:36:39
【问题描述】:

我正在尝试将 cobertura 报告合并到 SonarQube 6.1。我已遵循此文档:

https://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Unit+Tests+for+Java+Project https://docs.sonarqube.org/display/PLUG/Usage+of+JaCoCo+with+Java+Plugin

综上所述,我已将我的 Jenkins 管道配置为运行以下 Maven 语句:

sh "${mvnHome}/bin/mvn clean verify org.jacoco:jacoco-maven-plugin:prepare-agent org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar -Dmaven.test.failure.ignore=true -Dsonar.jacoco.reportPaths=${env.WORKSPACE}/target/jacoco.exec"

构建日志显示 JaCoCo 报告已生成:

[INFO] argLine set to -javaagent:/var/jenkins_home/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/var/jenkins_home/workspace/MY_PROJECT/target/jacoco.exec

但是当它试图访问它时,却找不到它:

[INFO] Sensor JaCoCoSensor [java]
[INFO] JaCoCo report not found: '/var/jenkins_home/workspace/MY_PROJECT/target/jacoco.exec'

我已验证该文件正在 /target/jacoco.exe 中正确生成,并在我的笔记本电脑上运行此语句:

mvn org.jacoco:jacoco-maven-plugin:prepare-agent -Dmaven.test.failure.ignore=true clean verify 

为什么它不起作用?

【问题讨论】:

    标签: maven jenkins sonarqube jacoco sonarqube-scan


    【解决方案1】:

    解决了!问题在于操作的顺序。重新排序后找到 jacoco.exec 文件并将覆盖信息传输到声纳:

    sh "${mvnHome}/bin/mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent verify org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar -Dmaven.test.failure.ignore=true -Dsonar.jacoco.reportPaths=${env.WORKSPACE}/target/jacoco.exec"
    

    【讨论】:

    • 有趣的是,设置如此简单的东西可能会出错。我遇到了与您类似的问题,在看到您的答案后开始尝试目标顺序,得到的结果与您完全不同,但它有效!
    猜你喜欢
    • 2018-12-13
    • 2015-10-02
    • 2016-01-03
    • 1970-01-01
    • 2016-08-05
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    相关资源
    最近更新 更多