我正在运行Jacoco的Maven插件。prepare-agent目标运行良好,但是由于某种原因不能生成jacoco.exec文件。随后,report目标抱怨Skipping JaCoCo execution due to missing execution data file。
有什么想法吗?
发布于 2014-02-08 00:48:47
读完https://groups.google.com/forum/#!topic/jacoco/LzmCezW8VKA之后,结果是prepare-agent设置了一个名为argLine的surefire属性。如果您覆盖了这个属性( https://issues.apache.org/jira/browse/SUREFIRE-951鼓励您这样做),那么jacoco永远不会运行。
解决方案是替换:
<argLine>-Dfile.encoding=${project.build.sourceEncoding}</argLine>使用
<argLine>-Dfile.encoding=${project.build.sourceEncoding} ${argLine}</argLine>也就是说,将jacoco的argLine附加到新值。
更新:正如Fodder所指出的,如果你不总是运行JaCoCo,并且没有其他插件集${argLine},那么Maven会抱怨${argLine}是未定义的。要解决这个问题,只需定义跳过JaCoCo时${argLine}应该是什么样子:
<properties>
<argLine/>
</properties>在这种情况下,使用@{argLine}而不是${argLine}来解释here。
发布于 2016-07-04 05:35:23
如果你在构建时不总是运行JaCoCo,那么@Gili的解决方案就不能工作,因为它找不到argLine。相反,使用自定义值在您的POM中添加属性argLine。JaCoCo准备代理将附加到该属性,且Surefire将使用附加的argLine。
<properties>
<argLine>whatever your custom argline variables are</argLine>
</properties>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<!-- Don't put argLine config here! -->
</plugin>
</plugins>https://stackoverflow.com/questions/21633277
复制相似问题