如何从命令行配置JaCoCo Maven插件

wid*_*get 6 java plugins maven jacoco

我正在尝试从使用的命令行配置JaCoCo maven插件pom.xmlprepare-agent到目前为止,我已经可以执行以下命令了:

mvn -X -Djacoco.destFile=./coverage/jacoco.exec clean org.jacoco:jacoco-maven-plugin:prepare-agent install
Run Code Online (Sandbox Code Playgroud)

输出:

[DEBUG] Configuring mojo org.jacoco:jacoco-maven-plugin:0.7.6.201602180812:prepare-agent from plugin realm ClassRealm[plugin>org.jacoco:jacoco-maven-plugin:0.7.6.201602180812, parent: sun.misc.Launcher$AppClassLoader@70dea4e]
[DEBUG] Configuring mojo 'org.jacoco:jacoco-maven-plugin:0.7.6.201602180812:prepare-agent' with basic configurator -->
[DEBUG]   (f) destFile = /src/coverage/jacoco.exec
...
Run Code Online (Sandbox Code Playgroud)

它会创建./coverage/jacoco.exec文件,现在我正在尝试运行report阶段,但无法在此阶段设置属性。我正在运行命令:

mvn -X -Djacoco.dataFile=./coverage/jacoco.exec -Djacoco.outputDirectory=./jacoco_ut org.jacoco:jacoco-maven-plugin:report
Run Code Online (Sandbox Code Playgroud)

要么

mvn -X -DdataFile=./coverage/jacoco.exec -DoutputDirectory=./jacoco_ut org.jacoco:jacoco-maven-plugin:report
Run Code Online (Sandbox Code Playgroud)

jacoco:报告没有user propertyjacoco:准备代理

我有这样的输出:

[DEBUG] Configuring mojo 'org.jacoco:jacoco-maven-plugin:0.7.6.201602180812:report' with basic configurator -->
[DEBUG]   (f) dataFile = /src/target/jacoco.exec
[DEBUG]   (f) outputDirectory = /src/target/site/jacoco
[DEBUG]   (f) outputEncoding = UTF-8
[DEBUG]   (f) project = MavenProject: project:3.2.0-SNAPSHOT @ /src/pom.xml
[DEBUG]   (f) skip = false
[DEBUG]   (f) sourceEncoding = UTF-8
[DEBUG] -- end configuration --
Run Code Online (Sandbox Code Playgroud)

使用默认值。

Tun*_*aki 5

更新至0.7.8

GitHub的问题,322已解决为0.7.8版本jacoco-maven-plugin。从该版本开始,您可以使用user属性jacoco.dataFile,因此问题中的命令将按原样运行。

要在命令行上强制版本,您应该具有:

mvn -Djacoco.destFile=./coverage/jacoco.exec clean org.jacoco:jacoco-maven-plugin:0.7.8:prepare-agent install
Run Code Online (Sandbox Code Playgroud)

您还可以jacoco-maven-plugin在POM内部进行配置,并明确指定此版本。

或保留默认值

在0.7.8版之前,该属性没有用户dataFile属性,因此您将无法执行该操作。您在调用时正确覆盖了默认值

mvn -Djacoco.destFile=./coverage/jacoco.exec clean org.jacoco:jacoco-maven-plugin:prepare-agent install
Run Code Online (Sandbox Code Playgroud)

因为jacoco.destFile是与相关联的用户属性的名称destFile的属性prepare-agent目标。

但是,目标的相应dataFile属性没有用户属性report。因此,最好的选择是保留默认值。