maven 如何在构建过程中跳过jacoco覆盖检查?

hujrc8aj  于 2023-03-29  发布在  Maven
关注(0)|答案(3)|浏览(439)

在我们的项目中,我们使用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或其他方法来快速跳过此检查?

pdtvr36n

pdtvr36n1#

正如@wemu在下面评论的那样,OP u可以使用-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
xfb7svmp

xfb7svmp2#

您可以使用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
ivqmmu1c

ivqmmu1c3#

使用上面@Wlad的答案,我在MVN命令上做了一个简单的批处理脚本。我设置了默认行为,因为这是针对我的开发环境,禁用/跳过Jacoco覆盖率分析。在%MVN_HOME\bin%目录中创建这个脚本。根据您的偏好进行调整:
m.bat

@echo off

@REM Facade over maven command

if [%1]==[-j] goto jacoco
echo Skipping Jacoco analysis
mvn %1 %2 %3 %4 %5 %6 %7 -Djacoco.skip=true
goto end
:jacoco
mvn %2 %3 %4 %5 %6 %7

:end

这允许以下调用:

  • 代码覆盖率:m -j clean site
  • 然后构建我的包(没有代码覆盖率):m clean package

味道很合你的口味:-)

相关问题