【发布时间】:2016-08-04 12:23:02
【问题描述】:
我有几个级别的嵌套 Maven 项目,每个模块都可以参与全局集成测试。为了获得全局、多模块覆盖,我配置 jacoco 使用 Maven 变量 ${session.executionRootDirectory} 跨模块共享相同文件:
<execution>
<id>pre-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<propertyName>jacoco.failsafeArgLine</propertyName>
<destFile>${session.executionRootDirectory}/target/jacoco-it.exec</destFile>
</configuration>
</execution>
这样,每个模块都使用相同的数据文件,无论它在子模块中嵌套多深。我查过了,jacoco在启动“mvn clean install”时生成了正确的数据文件。
现在启动mvn sonar:sonar 时出现问题。似乎插件无法用真实路径替换该变量。我可以在日志中看到以下内容
[INFO] JaCoCoItSensor: JaCoCo IT report not found: /home/tomcat/.jenkins/jobs/MYJOB/workspace/${session.executionRootDirectory}/target/jacoco-it.exec
使用@{session.executionRootDirectory}时效果不好。
有什么解决方法吗?
【问题讨论】: