由于我在使用带有 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,所以我在 parent 中设置了这个插件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希望使用asm
ofspring-instrument
但它失败了(但我不确定我是对的)。
Jacoco版本是0.6.3.201306030806
.
为什么Jacoco在这种情况下无法使用仪器?我该如何克服呢?
我想也许我可以配置maven-compiler-plugin将代码编译为 1.6,然后我就不需要maven-surefire-plugin插件了。是否有意义?