我尝试使用标准 maven sonar:sonar 目标在 Jenkins 上使用 java 项目运行 Sonar 分析,并使用后步骤 >> 执行 SonarQube 扫描仪。我使用的maven目标是。
clean org.jacoco:jacoco-maven-plugin:0.7.8:prepare-agent package org.jacoco:jacoco-maven-plugin:0.7.8:report sonar:sonar -Dmaven.test.failure.ignore=true
对于 SonarQube 扫描仪,我使用了以下 Maven 目标
clean org.jacoco:jacoco-maven-plugin:0.7.8:prepare-agent package org.jacoco:jacoco-maven-plugin:0.7.8:report -Dmaven.test.failure.ignore=true
在“发布”步骤中,我添加了“执行 SonarQube 扫描仪”步骤。
使用 maven sonar:sonar goal,我得到了 60% 的覆盖率,而使用 post 步骤,我只得到了 49%。无法找出差异的原因。
SonarQube 版本 - 7.7 Sonar 扫描仪版本 - 3.3.0 Jenkins 版本 - 2.164.3 Maven 版本 - 3.6.1
最佳答案
我曾提到两次运行的 Sonar 源目录不同。对于 Maven,它是从 pom.xml 中选取的,它是 src/main,对于 Sonar 扫描仪,它在作业中配置为 src。修改后,问题就解决了。
关于java - Jenkins Sonar 扫描仪与 Maven Sonar :sonar goal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56568422/