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

Maven项目中如何将generated-sources排除在Jacoco覆盖率报告之外?

解决Jacoco无法排除generated-sources目录类的问题
  • 核心问题:Jacoco的exclusionPattern是针对编译后的类文件路径,而非源码目录路径。你配置的**/target/generated-sources/**指向的是源码目录,但生成的代码编译后通常会放在target/classes或target/generated-classes目录下,所以这个规则无法匹配到实际参与覆盖率统计的类文件。

  • 调整方案:

    1. 先确认生成代码的编译输出路径:查看项目target目录,找到generated-sources里的代码编译后所在的具体位置,比如target/classes/com/yourproject/generated或者target/generated-classes。
    2. 修改排除规则,匹配编译后的类路径:
      示例配置:
      post {
          always {
              junit allowEmptyResults: true, testResults: '**/target/failsafe-reports/*.xml'
              step( [ $class: 'JacocoPublisher', exclusionPattern: '**/target/classes/**/generated/**,**/target/generated-classes/**,**/tomcat/**'] )
          }
      }
      
    3. 如果生成的类都属于特定包(比如com.example.generated),也可以直接用包路径匹配:
      exclusionPattern: 'com/example/generated/**,**/tomcat/**'
      
  • 验证方法:执行构建后,查看Jacoco报告的类列表,确认生成的类是否已被排除;也可以在Jenkins控制台输出中查找Jacoco相关的日志,检查排除规则是否匹配到了目标类。

内容的提问来源于stack exchange,提问作者Ankit Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:40:39