我目前正在开发一个应用程序,我想生成XML覆盖率报告,并在构建时检查是否达到了覆盖范围限制。
我在让他们一起工作时遇到了问题。
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<check>
<branchRate>100</branchRate>
<lineRate>100</lineRate>
<haltOnFailure>true</haltOnFailure>
<totalBranchRate>100</totalBranchRate>
<totalLineRate>100</totalLineRate>
<packageLineRate>100</packageLineRate>
<packageBranchRate>100</packageBranchRate>
</check>
</configuration>
<executions>
<execution>
<goals>
<goal>clean</goal>
<goal>check</goal>
<goal>cobertura</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
实际上,我收到以下错误:&#34;无法准备检测目录。源和目的地是相同的目录&#34;。
但如果我只使用一个目标就可以了。随着&#34; cobertura&#34;我得到了我的XML报告,并且&#34;检查&#34;如果应用程序没有达到限制,则应用程序会失败。
我如何一起使用它们? 我使用的是Java 8和Maven 3。
答案 0 :(得分:0)
添加多个执行,每个执行只有一个目标。并确保它们按顺序运行,将每个分配给一个maven阶段。类似的东西(你可能想改变你使用的阶段):
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<check>
<branchRate>100</branchRate>
<lineRate>100</lineRate>
<haltOnFailure>true</haltOnFailure>
<totalBranchRate>100</totalBranchRate>
<totalLineRate>100</totalLineRate>
<packageLineRate>100</packageLineRate>
<packageBranchRate>100</packageBranchRate>
</check>
</configuration>
<executions>
<execution>
<id>clean-corbertura</id>
<goals>
<goal>clean</goal>
</goals>
<phase>initialize</phase>
</execution>
<execution>
<id>check-corbertura</id>
<goals>
<goal>check</goal>
</goals>
<phase>process-resources</phase>
</execution>
<execution>
<id>run-corbertura</id>
<goals>
<goal>cobertura</goal>
</goals>
<phase>prepare-package</phase>
</execution>
</executions>
</plugin>
</plugins>
https://maven.apache.org/guides/mini/guide-configuring-plugins.html
的更多信息