我正在尝试改善项目的覆盖率报告,并且希望排除某些包,但包括子包.例如,我有这种结构
src/main/java/com/myapp
└ model
└ mapper
└ SomeMapperClass.java
└ SomeModelClass.java --> exclude this and others...
└ ...
└ ClassToInclude.java --> but include this
└ service
我想排除模型包,但包括mapper和ClassToInclude.有什么方法可以不必逐个添加每个排除的类吗?我想要在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.mapper中的每个类.现在,我只需要一种方法来解决如何在排除的程序包中包含特定的类.
解决方法:
虽然可以从覆盖范围中排除某些文件,但是只能将整个文件包括在内.也就是说,排除是细粒度的,但不包括(即sonar.coverage.inclusions不存在),因此我认为这不会像您当前尝试的那样起作用.
就是说,如果您仔细地制作排除项,即仅使用排除项,即** / model / *.java而不是** / model / ** / *.java,则应该可行.