配置 Sonar 以从 Maven pom.xml 中排除文件

新手上路,请多包涵

我在 maven 中配置了一个项目,代码分析由 SonarQube 完成。

我正在尝试在 pom.xml 文件中配置 SonarQube,以从代码分析中排除一些文件。这些文件可以通过它们的类名来识别,它们在扩展名之前包含下划线字符(它们是元模型类)。下面我给出了 pom.xml 文件中我尝试排除它们的部分:

 <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <sonar.sources>src/main/java</sonar.sources>
        <sonar.exclusions>file:**/src/main/java/**/*_.*</sonar.exclusions>
    </configuration>
</plugin>

但是,上面的代码不起作用。有没有办法从我的 pom.xml 文件配置 SonarQube 以在分析源代码时忽略这些文件?

先感谢您。

原文由 pappus 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

必须将声纳排除项(与其他声纳属性一样)添加到 POM 文件的 <properties> 部分。像这样(例如从当前项目中排除 jOOQ 自动生成的代码):

 <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <sonar.host.url>http://www.example.com/</sonar.host.url>
    <sonar.jdbc.url>jdbc:postgresql://www.example.com/sonar</sonar.jdbc.url>
    <sonar.jdbc.driver>org.postgresql.Driver</sonar.jdbc.driver>
    <sonar.jdbc.username>sonar</sonar.jdbc.username>
    <sonar.jdbc.password>sonar</sonar.jdbc.password>
    <sonar.exclusions>org/binarytherapy/generated/**/*, **/GuiceBindComposer.java</sonar.exclusions>
    <sonar.dynamic>reuseReports</sonar.dynamic>
</properties>

原文由 Mikkel Løkke 发布,翻译遵循 CC BY-SA 3.0 许可协议

<sonar.exclusions> 中提到的类/包从 Sonar 的所有静态分析中排除了给定的类,但是 <sonar.coverage.exclusions> 仅从覆盖范围中排除给定的类/包,并且仍然分析其他参数。

 <properties>
    <sonar.coverage.exclusions>
        **/domain/**/*,
        **/pojos/*
    </sonar.coverage.exclusions>
</properties>

参考:

资源:

原文由 Amit Kaneria 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏