You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将com.org.projectname.model包从SonarQube覆盖率统计中排除

解决方案

方案1:修正jacoco-maven-plugin配置

你之前的配置未生效是两个原因导致:

  • 路径匹配规则错误:**/com/org/projectname/model/*.class仅能匹配model包下的直接一级类,无法匹配model子包下的类、内部类;你第一次尝试的**/model /*.class路径中间存在多余空格,直接导致规则失效。
  • 配置位置错误:你将<excludes>放在plugin全局配置节点,但两个<execution>节点都自定义了<configuration>,会覆盖全局配置,导致排除规则不生效。

正确配置示例如下,将排除规则加到报告生成的执行节点配置中:

<plugin>
   <groupId>org.jacoco</groupId>
   <artifactId>jacoco-maven-plugin</artifactId>
   <version>0.8.6</version>
   <executions>
      <execution>
         <id>pre-unit-test</id>
         <goals>
            <goal>prepare-agent</goal>
         </goals>
         <configuration>
            <destFile>target/coverage-data/jacoco-ut.exec</destFile>
            <propertyName>surefireArgLine</propertyName>
         </configuration>
      </execution>
      <execution>
         <id>post-unit-test</id>
         <phase>test</phase>
         <goals>
            <goal>report</goal>
         </goals>
         <configuration>
            <dataFile>target/coverage-data/jacoco-ut.exec</dataFile>
            <outputDirectory>target/coverage-reports/jacoco-ut</outputDirectory>
            <!-- 新增排除规则 -->
            <excludes>
                <exclude>**/com/org/projectname/model/**/*.class</exclude>
            </excludes>
         </configuration>
      </execution>
   </executions>
</plugin>

配置完成后执行mvn clean test,查看target目录下生成的jacoco报告,确认model包已被排除后再推送到SonarQube即可。

方案2:直接通过SonarQube配置排除(更简便)

如果不需要修改jacoco本地报告,仅需要SonarQube统计覆盖率时排除该包,直接在pom文件的<properties>节点添加如下配置即可,优先级高于jacoco侧配置:

<properties>
    <!-- 其他properties配置 -->
    <sonar.coverage.exclusions>**/com/org/projectname/model/**/*</sonar.coverage.exclusions>
</properties>

如果是多模块项目,该配置放在父pom的properties中即可全局生效。

内容的提问来源于stack exchange,提问作者ima.technophyle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:27:04