【问题标题】:How to skip jacoco coverage check during build?如何在构建期间跳过 jacoco 覆盖检查?
【发布时间】:2020-05-26 13:31:40
【问题描述】:

在我们的项目中,我们使用jacoco-maven-plugin,在构建过程中我收到了这个错误:

[ERROR] Failed to execute goal org.jacoco:jacoco-maven-plugin:0.8.5:check (jacoco-check) on project my-project: Coverage checks have not been met. See log for details. 

我知道修复覆盖率等更好。但有时我只需要快速构建一个项目。 为此目的是否有某种参数?喜欢mvn clean install -Dskip.jacoco.check=true 或其他方式快速跳过此检查?

【问题讨论】:

  • 是的。差不多就是这样。检查目标有一个跳过参数:eclemma.org/jacoco/trunk/doc/check-mojo.html#skip - 所以它会是 -Djacoco.skip=true - 似乎这会跳过所有 jacoco 目标。如果您不希望这样可以暂时将检查目标移动到您可以在回到正轨时激活的配置文件中?
  • @wemu 你能把你的评论变成官方答案吗?我发现它也适合我
  • @wemu 的评论也对我有用。我将其发布为下面的答案。所有的功劳都归他所有:)))
  • @IKo 我还要添加标签Jacocoskip

标签: maven jacoco skip jacoco-maven-plugin


【解决方案1】:

正如@wemu 在 OP 下方评论的那样,您可以使用 -Djacoco.skip=true 命令行选项暂时跳过 Jacoco 代码检测和覆盖率报告生成。例子:

mvn clean test -Djacoco.skip=true
mvn clean verify -Djacoco.skip=true
mvn clean package -Djacoco.skip=true
mvn clean install -Djacoco.skip=true

【讨论】:

    【解决方案2】:

    您可以使用 pom.xml 或 sonar-project.properties 跳过某些 java 文件的代码覆盖。

    例如:使用下面的插件,在标签中给出不需要代码覆盖的java文件包

    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.5</version>
        <executions>
            <execution>
                <id>default-prepare-agent</id>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>default-report</id>
                <goals>
                    <goal>report</goal>
                </goals>
            </execution>
            <execution>
                <id>default-check</id>
                <goals>
                    <goal>check</goal>
                </goals>
                <configuration>
                    <excludes>
                        <exclude>com/sbi/mdcm/v1_0_0/insurancequote/autogen/**</exclude>
                        <exclude>com/sbi/mdcm/v1_0_0/insurancequote_resources/autogen/**</exclude>
                    </excludes>
                    <rules>
                        <rule>
                            <element>BUNDLE</element>
                            <limits>
                                <limit>
                                    <counter>COMPLEXITY</counter>
                                    <value>COVEREDRATIO</value>
                                    <minimum>0.80</minimum>
                                </limit>
                            </limits>
                        </rule>
                    </rules>
                </configuration>
            </execution>
        </executions>
    </plugin>
            
    

    sonar-project.properties:

    sonar.exclusions=**/com/sbi/mdcm/v1_0/insurancepolicy_adapter/osi/model/*.java
    

    【讨论】:

    • 能够排除类可能很有用,尤其是当它们与 Jacoco 发生冲突并导致构建失败时。不过,这不是 OP 所要求的。
    猜你喜欢
    • 2021-08-09
    • 2020-01-14
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 2019-09-14
    • 2022-07-26
    • 2012-01-08
    • 2023-03-05
    相关资源
    最近更新 更多