【发布时间】:2017-09-24 02:31:08
【问题描述】:
鉴于相同的代码和具有相同规则的相同 SonarQube 服务器,我在使用 mvn sonar:sonar 与 sonar-scanner CLI 和 sonar-project.properties 文件或 Sonar Jenkins 进行扫描时发现的错误和漏洞数量大不相同插入。像,超过两倍。
我在属性文件和服务器上设置了模块,我可以看到两个扫描仪之间的代码行数相同。我可以在一份报告中看到测试,但不能在另一份报告中看到测试,但这些测试并未计入代码行数或任何错误。 Maven 发现 Jenkins 不存在的一个示例是 squid:S2160,其中父类与子类属于同一模块。
我主要关心的是 Maven 发现的其他错误是否合法,特别是考虑到 Sonar 已弃用“使用 Maven 进行 SonarQube 分析”后构建操作,并且推荐的 Jenkins 扫描仪在查看相同的代码。哪个扫描仪是正确的,如果是 Maven,在 Jenkins 中使用已弃用的步骤是否仍然可以?
我已经用模块匿名化了属性文件,但它看起来像这样:
# Required metadata
sonar.projectKey=groupId:artifactID
sonar.projectName=My Project name
sonar.projectVersion=0.0.4-SNAPSHOT
# Comma-separated paths to directories with sources (required)
sonar.sources=coreModule/src/main/java,appModule/src/main/java
sonar.tests=coreModule/src/test/java,appModule/src/test/java
sonar.modules=core,app
core.sonar.projectBaseDir=coreModule
core.sonar.sources=src/main/java
core.sonar.projectName=My Core Module Name
app.sonar.projectBaseDir=appModule
app.sonar.sources=src/main/java
app.sonar.projectName=My App Module Name
# Language
sonar.language=java
sonar.java.source=8
# Encoding of the source files
sonar.sourceEncoding=UTF-8
【问题讨论】:
-
我对包装器的了解也差不多。如果我在 mvn clean 之后或之前运行扫描仪,它似乎没有任何改变,它在目标文件夹中,但有没有特殊的配置方法?我让 Jenkins 设置为在构建结束时运行“SonarQube Scanner”。我可以根据需要在本地运行命令行扫描程序获得相同的结果。
标签: java maven jenkins sonarqube sonarqube-scan