首页 文章

声纳:多模块分析声纳

提问于
浏览
0

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

对于我的Jenkins作业配置,我使用SonarQube Scanner for Maven(link)和 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 的项目和 module2 的项目2 . module1module2 都是具有一个父pom的maven模块 .

myproject
   |
    ->module1
      |
       ->pom.xml (Sonar Project ONE)
    ->module2
      |
       ->pom.xml (Sonar Project TWO)
  ->pom.xml

one jenkins作业中配置此行为的最佳方法是什么 .

1 回答

  • 1

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

    你能做什么:

    • 由Maven构建所有模块

    • 在每个模块的根目录中生成一个带有内容的 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>
    

    这是非常不推荐的,因为:

    • 使您的项目可读性降低(模块不是"connected")

    • 执行分析要困难得多(您必须生成所有属性,在标准情况下由SonarQube Scanner for Maven生成)

相关问题