声纳排除/包含

时间:2018-05-21 15:18:17

标签: java maven sonarqube code-coverage

我正在尝试改进项目的覆盖率报告,我想要排除一些但包含子包的包。例如,我有这个结构

src/main/java/com/myapp
    └ model
        └ mapper
            └ SomeMapperClass.java
        └ SomeModelClass.java --> exclude this and others...
        └ ...
        └ ClassToInclude.java --> but include this
    └ service

我希望排除model个包,但包括mapperClassToInclude。有没有办法做到这一点,而不必逐个添加每个被排除的类?我想在pom.xml

中想要这样的东西
<sonar.coverage.exclusions>
    **/model/**/*.java
</sonar.coverage.exclusions>
<sonar.coverage.inclusions>
    **/model/mapper/**/*.java
    **/model/ClassToInclude.java
<sonar.coverage.inclusions>

感谢任何帮助,指南,选项和/或变通方法。提前感谢您的回答。

更新#1

通过执行以下操作,我找到了一种仅使用sonar.coverage.exclusions属性来包含子包的方法:

<sonar.coverage.exclusions>
    **/model/*.java
</sonar.coverage.exclusions>

通过此操作,您可以排除model中的所有课程,但不会排除model.mapper中的所有课程。现在我只需要一种方法来解决如何在排除的包中包含特定的类。

1 个答案:

答案 0 :(得分:2)

虽然您可以 排除某些文件,但您只能包含文件。也就是说,排除是精细的,但包含不是(即sonar.coverage.inclusions不存在),所以我认为这不会像你当前尝试的那样工作。

尽管如此,如果您仔细制作它们,即**/model/*.java而不是**/model/**/*.java,这应该只适用于排除。