Sonar:0个文件在一个项目中建立索引,在另一个项目正确扫描



我有两个Jenkins共享库,其中包含要扫描的groovy文件。两个项目都使用相同的sonarqube调用,使用maven,但在一个项目中,groovy文件被扫描,而在另一个项目则不是

声纳呼叫

...
String scanCmd = "mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar " +
"-f pom.xml " +
"-Dsonar.branch=%GIT_BRANCH% " +
"-Dsonar.test.inclusions=**/*Test*/** " +
"-Dsonar.exclusions=**/*Test*/** " +
"-Dsonar.skipDesign=true "
bat scanCmd
...

如果这很重要的话,我们使用的是5.6.6版本

声纳扫描仪配置

声纳配置在包含声纳属性的父pom中

....
<properties>
<!-- Sonar -->
<sonar.sources>src,vars</sonar.sources>
<sonar.inclusions>**/**</sonar.inclusions>
</properties>
....

两个项目(pom.xml(都使用这个父pom,即相同的声纳属性

项目1:0个索引文件

项目结构如下:

D:.
│   .gitignore
│   Jenkinsfile
│   pom.xml
│   README.md
│
├───src
│   └───ch
│       └───swisscard
│           └───jenkins
│               └───pipeline
│                   └───util
│                           PipelineRabbitMQ.groovy
│
└───vars
ciPipeline.groovy

因此,有两个groovy文件应该被扫描,但日志文件显示了0个索引文件:

[INFO] Base dir: D:jenkinstoolsci-homeworkspacerabbitmq-ci-pipeline_master-2CYM2JXOI6CJM2T4MSNQTNPWY7LRY7PTSC3OG74TSX2Q2WNKXUSQ
[INFO] Working dir: d:jenkinstoolsci-homeworkspacerabbitmq-ci-pipeline_master-2CYM2JXOI6CJM2T4MSNQTNPWY7LRY7PTSC3OG74TSX2Q2WNKXUSQtargetsonar
[INFO] Source paths: src, vars
[INFO] Binary dirs: target/classes
[INFO] Source encoding: UTF-8, default locale: en_US_US
[INFO] Index files
[INFO] Included sources:
[INFO]   **/**
[INFO] Excluded sources:
[INFO]   **/target/**/*
[INFO]   **/*Test*/**
[INFO]   **/*Test*/**
[INFO] Included tests:
[INFO]   **/*Test*/**
[INFO] 0 files indexed
[INFO] 0 files ignored because of inclusion/exclusion patterns

项目2:文件正确扫描

第二个项目结构如下:

D:.
│   .gitignore
│   Jenkinsfile
│   pom.xml
├───src
│   └───main
│       │   Utils.groovy
└───vars
checkQualityGate.groovy
defaultBuildApplication.groovy
ciPipeline.groovy

这里的日志文件表明所有文件都被扫描了:

[INFO] Load server rules (done) | time=98ms
[INFO] Base dir: D:jenkinstoolsci-homeworkspacepipeline_feature_sonar-scan-D6GRAK5PLQOMGCOOH2T6QP6BP4LA6O3LP23UC7VBSSL3RORI4ZXQ
[INFO] Working dir: d:jenkinstoolsci-homeworkspacepipeline_feature_sonar-scan-D6GRAK5PLQOMGCOOH2T6QP6BP4LA6O3LP23UC7VBSSL3RORI4ZXQtargetsonar
[INFO] Source paths: src, vars
[INFO] Source encoding: UTF-8, default locale: en_US_US
[INFO] Index files
[INFO] Included sources:
[INFO]   **/**
[INFO] Excluded sources:
[INFO]   **/target/**/*
[INFO]   **/*Test*/**
[INFO]   **/*Test*/**
[INFO] Included tests:
[INFO]   **/*Test*/**
[INFO] 5 files indexed
[INFO] 0 files ignored because of inclusion/exclusion patterns

问题

因此,很明显,这两个项目都有相同的配置和相似的结构,但其中一个被扫描,另一个没有。现在我不明白为什么?我已经检查了其他对我没有帮助的主题

  • 我没有明确设置sonar.basedir,但根据日志,基本目录很好

我的项目也遇到了类似的问题。我在声纳属性中添加了sonar.scm.exclusions.disabled=true,并对文件进行了索引和扫描。

最新更新