如果我尝试执行目标 javadoc:fix,我会收到此异常。Execution default-cli of goal org.codehaus.mojo:clirr-maven-plugin:2.2.2:check failed: Invalid byte tag in constant pool: 15如果我从 src/main/java 位置删除所有源代码,它就可以正常工作。如果我将一个新类添加到空目录中,它就可以正常工作。但是当我恢复删除时,错误又回来了。所以我认为我的源代码是“损坏的”,我应该在哪里搜索才能找到“损坏的”文件?如果我清除本地存储库,我只会收到警告“[警告]没有部署以前的工件,Clirr 被忽略。”但是,一旦我将版本更改为更高,并且我的仓库中有两个版本的工件,我仍然会收到错误。我想我已经在javadoc-maven-plugin https://github.com/apache/maven-javadoc-plugin/blob/master/src/main/java/org/apache/maven/plugins/javadoc中找到了重要的部分/AbstractFixJavadocMojo.java第 193-205 行 - 为什么它是硬编码的?行:450 Try/catch 执行 Clirr
1 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
根据堆栈跟踪,导致问题的实际库是 bcel。如果您将新版本作为插件依赖项添加到您的 Maven 配置中,它可能会起作用。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<!-- .... other stuff -->
<dependencies>
<dependency>
<groupId>org.apache.bcel</groupId>
<artifactId>bcel</artifactId>
<version>6.3.1</version>
</dependency>
</dependencies>
</plugin>
如果这不起作用,我会采用这种解决方法。找到导致问题的类并将其排除。
要查找导致问题的类:
添加异常断点
org.apache.bcel.classfile.ClassFormatException
以调试模式启动maven生成
等到到达断点
查看
org.apache.bcel.classfile.ClassParser.parse
激活框架,我希望在变量或字段之一中看到类名。(也许您需要进一步查看堆栈)。排除类(也许是整个包)
重复 2
添加回答
举报
0/150
提交
取消