【问题标题】:Sonarqube exclusion for multi-module maven project多模块 Maven 项目的 Sonarqube 排除
【发布时间】:2017-10-11 14:23:06
【问题描述】:

我有一个多模块 Maven 项目。在我的父 pom 中,是这样的 -

<modules> 
    <module>a</module> 
    <module>b</module> 
    <module>c</module> 
</modules>

我想扫描 a & b 的 src/main/java 但 c 的结构不同:c/src/main/dir1/dir2/dir3/js1 & c/src/main/dir1/dir2/dir4 /js2 我想扫描项目 c 直到 dir3 但排除了 dir4

它变得复杂了,我不知道要包含和排除什么。我正在使用 maven 扫描仪并在 jenkins 的 sonarqube 插件中传递参数,如下所示:

-Dsonar.projectName="MyProject" -Dsonar.sources="." -Dsonar.projectKey="MyKey" -Dsonar.inclusions="src/main/java/**,c/src/main/dir1/dir2/**" -Dsonar.exclusions="c/src/main/dir1/dir2/dir3" -Dsonar.scm.disabled=true -Dsonar.sourceEncoding=UTF-8

我也尝试使用 sonar.modules 使其模块化,但没有排除所需目录。我做错了什么?

【问题讨论】:

  • 如果您使用的是 maven 扫描仪,那么 mvn sonar:sonar 就是您所需要的,您不需要在示例中指定 -Dsonar.sources=... 并且可能不需要指定其他 -D 参数。这就是 maven 扫描仪的重点,它了解您的 maven 配置。

标签: java jenkins sonarqube sonar-runner


【解决方案1】:

下面的答案只是给你的建议....

不要使用sonar.modules 属性

在下面的链接中查看我的答案

What is the correct way to configure an Android project with submodules for use with the sonarqube gradle plugin?

并在每个模块的sonarqube.gradle文件中分别使用属性配置排除项

 // noinspection GroovyAssignabilityCheck
        property "sonar.exclusions", "src/main/java/com/appar/model/**, **/*Entity.java" 

这将解决您的问题。

【讨论】:

    猜你喜欢
    • 2021-02-09
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2016-03-07
    • 2017-01-10
    • 1970-01-01
    • 2018-02-06
    相关资源
    最近更新 更多