【发布时间】:2014-06-06 17:15:33
【问题描述】:
我有一个多模块 Maven 3 项目。我们使用 Cobertura 作为我们的代码覆盖工具,但 excludes 标签不起作用。我们从另一个团队继承的包中进行了一些糟糕的测试,但需要使用。
结构如下:
<module1>
.../com/aaaa/...
<module2>
.../com/aaaa/...
<module3>
.../com/aaaa/...
...
<moduleN>
packages with .../com/xx/... WE WANT TO EXCLUDE
pacakges with .../com/aaaa/... WE WANT TO STILL INCLUDE
parent-pom.xml
我们的父 POM 是这样配置的:
<build>
...
<plugins>
<other plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.6</version>
<configuration>
<aggregate>true</aggregate>
<outputDirectory>coverageReports</outputDirectory>
<instrumentation>
<excludes>
<exclude>**/com/xx/**/*</exclude>
</excludes>
</instrumentation>
/configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.6</version>
<configuration>
<aggregate>true</aggregate>
<outputDirectory>coverageReports</outputDirectory>
</configuration>
</plugin>
</plugins>
</reporting>
我尝试了很多不同的配置,包括:
- 同时排除 test/com/xx 文件
- 添加要忽略的排除模式
- 在报告和构建部分设置排除
- 排除文件模式的多种排列方式,包括更加隐式
有什么想法吗?我让其他一些构建工程师查看了我的各种 POM 配置,它似乎总是有效的,但我们从来没有得到准确的报告。
【问题讨论】:
标签: java maven-3 multi-module maven-cobertura-plugin