声纳:多模块分析声纳

时间:2018-01-23 15:31:09

标签: maven jenkins sonarqube sonarqube-scan

对于我们的代码分析,我希望每个maven模块都有一个声纳项目。 目前我从父母pom那里得到了一个声纳项目。

对于我的Jenkins作业配置,我使用SonarQube Scanner for Maven(link)和A(){}

sonar-project.properties

因此,我的声纳的预期结果将是# Root project information sonar.projectKey=org.mycompany.myproject sonar.projectName=My Project sonar.projectVersion=1.0 # Some properties that will be inherited by the modules sonar.sources=src # List of the module identifiers sonar.modules=module1,module2 的项目和module1的项目2。 module2module1都是具有一个父pom的maven模块。

module2

一个 jenkins作业中配置此行为的最佳方法是什么。

1 个答案:

答案 0 :(得分:2)

如果要将所有模块存储为独立项目,则无法指定sonar.modules并使用SonarQube Scanner for Maven。 Maven扫描程序用于创建子模块(与pom.xml文件中定义的结构相同)。

你能做什么:

  1. 通过Maven构建所有模块
  2. 在每个模块的根目录中生成一个内容为sonar-project.properties的文件:

    sonar.projectKey=<project.groupId>:<project.artifactId>
    sonar.projectName=<project.name>
    sonar.projectVersion=<project.version>
    
    sonar.sourceEncoding=<project.build.sourceEncoding>
    sonar.sources=pom.xml,src/main
    sonar.tests=src/test
    sonar.java.binaries=<project.build.directory>/classes
    sonar.java.libraries=<list of all compile and provided libraries>
    sonar.java.test.binaries=<project.build.directory>/classes
    sonar.java.test.libraries=<list of all compile, provided and test libraries>
    
  3. 执行SonarQube Scannersonar-scanner
  4. 非常不推荐这样做,因为:

    • 使您的项目可读性降低(模块不是&#34;连接&#34;)
    • 执行分析要困难得多(您必须生成标准情况下由SonarQube Scanner for Maven生成的所有属性)