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

执行mvn site命令触发clirr插件报错:Invalid byte tag in constant pool:19

解决mvn site执行时的Invalid byte tag in constant pool: 19错误

问题背景

执行mvn site命令时触发如下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.12.1:site (default-site) on project xxx: Error generating clirr-maven-plugin:2.8:clirr report: Invalid byte tag in constant pool: 19

环境信息:

  • Apache Maven 3.9.6
  • Java 1.8.0_402
  • Mac OS X 14.3.1

原因分析

clirr-maven-plugin 2.8默认依赖的BCEL(Byte Code Engineering Library)版本过低,无法识别Java 7及以上版本字节码中的CONSTANT_MethodHandle常量池标签(对应tag值19)。即使你使用的是Java 8,老旧的BCEL版本也无法正确解析这类字节码,最终导致maven-site-plugin生成报告时失败。

解决方案

方案1:升级clirr-maven-plugin版本

直接将clirr插件升级到支持Java 8的版本(如3.2),新版本会自动依赖兼容的BCEL库。在pom.xml中添加或修改配置:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-site-plugin</artifactId>
      <version>3.12.1</version>
      <reportPlugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>clirr-maven-plugin</artifactId>
          <version>3.2</version>
        </plugin>
      </reportPlugins>
    </plugin>
  </plugins>
</build>

方案2:强制指定兼容的BCEL版本

如果暂时不想升级clirr插件,可以在pom.xml的dependencyManagement中强制引入支持Java 8的BCEL版本(如6.5.0):

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.bcel</groupId>
      <artifactId>bcel</artifactId>
      <version>6.5.0</version>
    </dependency>
  </dependencies>
</dependencyManagement>

验证

修改配置后重新执行mvn site,错误即可消除,站点报告能正常生成。

内容的提问来源于stack exchange,提问作者Prakher Jindal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:24:52