运行 jacoco 使用 maven 3.5 检查目标
Running jacoco check goal with maven 3.5
我在 pom 中的 jacoco 插件配置如下所示
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.5.201505241946</version>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${jacoco.ut.execution.data.file}</destFile>
</configuration>
</execution>
<execution>
<id>merge-execs</id>
<phase>pre-site</phase>
<inherited>false</inherited>
<goals>
<goal>merge</goal>
</goals>
<configuration>
<fileSets>
<fileSet>
<directory>${basedir}</directory>
<includes>
<include>**/target/*.exec</include>
</includes>
</fileSet>
</fileSets>
<destFile>${jacoco.ut.merged.exec}</destFile>
</configuration>
</execution>
<execution>
<id>jacoco-check</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
</limits>
</rule>
</rules>
<dataFile>${jacoco.ut.merged.exec}</dataFile>
</configuration>
</execution>
</executions>
</plugin>
但是当我 运行 mvn jacoco:check
它失败并出现以下错误
[ERROR] Failed to execute goal org.jacoco:jacoco-maven-plugin:0.7.5.201505241946:check (default-cli) on project main: The parameters 'rules' for goal org.jacoco:jacoco-maven-plugin:0.7.5.201505241946:check are missing or invalid -> [Help 1]
谁能告诉我出了什么问题?
您观察到的行为并非特定于 jacoco-maven-plugin
,而是 Maven 的工作方式 - 请参阅 https://maven.apache.org/guides/mini/guide-default-execution-ids.html
mvn jacoco:check
使用执行 ID default-cli
,而您的 pom.xml
定义执行中的配置,其中 ID jacoco-check
绑定到阶段 verify
。
所以要么使用这个阶段:
mvn verify
或在 executions
块之外(即在 <plugin><configuration>
中)提供配置,以便在所有执行中继承它。
或明确指定执行id jacoco-check
:
mvn jacoco:check@jacoco-check
我在 pom 中的 jacoco 插件配置如下所示
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.5.201505241946</version>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${jacoco.ut.execution.data.file}</destFile>
</configuration>
</execution>
<execution>
<id>merge-execs</id>
<phase>pre-site</phase>
<inherited>false</inherited>
<goals>
<goal>merge</goal>
</goals>
<configuration>
<fileSets>
<fileSet>
<directory>${basedir}</directory>
<includes>
<include>**/target/*.exec</include>
</includes>
</fileSet>
</fileSets>
<destFile>${jacoco.ut.merged.exec}</destFile>
</configuration>
</execution>
<execution>
<id>jacoco-check</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
</limits>
</rule>
</rules>
<dataFile>${jacoco.ut.merged.exec}</dataFile>
</configuration>
</execution>
</executions>
</plugin>
但是当我 运行 mvn jacoco:check
它失败并出现以下错误
[ERROR] Failed to execute goal org.jacoco:jacoco-maven-plugin:0.7.5.201505241946:check (default-cli) on project main: The parameters 'rules' for goal org.jacoco:jacoco-maven-plugin:0.7.5.201505241946:check are missing or invalid -> [Help 1]
谁能告诉我出了什么问题?
您观察到的行为并非特定于 jacoco-maven-plugin
,而是 Maven 的工作方式 - 请参阅 https://maven.apache.org/guides/mini/guide-default-execution-ids.html
mvn jacoco:check
使用执行 ID default-cli
,而您的 pom.xml
定义执行中的配置,其中 ID jacoco-check
绑定到阶段 verify
。
所以要么使用这个阶段:
mvn verify
或在 executions
块之外(即在 <plugin><configuration>
中)提供配置,以便在所有执行中继承它。
或明确指定执行id jacoco-check
:
mvn jacoco:check@jacoco-check