Jenkins 2 - Sonar 6.3 - JaCoCo 报告未找到

Posted

技术标签:

【中文标题】Jenkins 2 - Sonar 6.3 - JaCoCo 报告未找到【英文标题】:Jenkins 2 - Sonar 6.3 - JaCoCo report not found 【发布时间】: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 

为什么它不起作用?

【问题讨论】:

【参考方案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"

【讨论】:

有趣的是,设置如此简单的东西可能会出错。我遇到了与您类似的问题,在看到您的答案后开始尝试目标顺序,得到的结果与您完全不同,但它有效!

以上是关于Jenkins 2 - Sonar 6.3 - JaCoCo 报告未找到的主要内容,如果未能解决你的问题,请参考以下文章

sonar+Jenkins注意的关键点或坑及sonar规则忽略或修改

持续集成与自动化部署 - jenkins与sonargitlab集成

持续构建jenkins+sonar5.6自动审查php环境

持续构建jenkins+sonar5.6自动审查php环境

wind安装Jenkins+sonar+jdk

使用Jenkins Sonar插件构建成功后,Sonar没有显示代码覆盖率