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规则忽略或修改