【发布时间】:2013-06-15 17:44:16
【问题描述】:
由于我在使用带有 Java 7 的 cobertura 时遇到了一些问题 - 我正在尝试 Jacoco。
我的项目有一个父项目pom.xml 和子项目。
在一个项目中,我使用 spring 来运行一些集成测试 - 所以我在这个项目的 pom.xml 中有这个插件:
<plugin>
<version>2.12.4</version>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- -XX:-UseSplitVerifier is for java 7 -->
<argLine>
-XX:-UseSplitVerifier
-javaagent:${settings.localRepository}/org/springframework/spring-instrument/${spring.version}/spring-instrument-${spring.version}.jar
</argLine>
</configuration>
</plugin>
由于我使用Java 7,我已经在父pom.xml中设置了这个插件:
<plugin>
<version>2.5.1</version>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<optimize>true</optimize>
<debug>true</debug>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<encoding>utf8</encoding>
</configuration>
</plugin>
现在,当我使用mvn clean install 时,所有项目在/target 文件夹中都有这个文件:jacoco.exec
;但是这个使用spring-instrument 的项目没有这个文件。
我认为问题在于 Jacoco 希望使用 spring-instrument 的 asm 但它失败了(但我不确定我是否正确)。
Jacoco 版本是0.6.3.201306030806。
为什么 Jacoco 在这种情况下无法检测? 我该如何克服这个问题?
我想也许我可以配置 maven-compiler-plugin 来将代码编译到 1.6,然后我就不需要 maven-surefire-plugin 插件了。有意义吗?
【问题讨论】:
标签: java maven code-coverage java-7 jacoco