gpt4 book ai didi

Javadoc 生成失败 : ClassCastException: com. sun.tools.javadoc.ClassDocImpl 无法转换为 com.sun.javadoc.AnnotationTypeDoc

转载 作者:搜寻专家 更新时间:2023-10-30 21:22:52 29 4
gpt4 key购买 nike

当我这样做时,我收到以下错误

mvn clean deploy -DperformRelease=true

[ERROR] Exit code: 1 - .java:3: package javax.inject does not exist
[ERROR] import javax.inject.Named;
[ERROR] ^
[ERROR] TransactionServiceExternalImpl.java:5: cannot find symbol
[ERROR] symbol: class Named
[ERROR] @Named("transactionServiceExternal")
[ERROR] ^
[ERROR] java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl cannot be cast to com.sun.javadoc.AnnotationTypeDoc

POM 是这样的...

<groupId>com.xxx</groupId>
<artifactId>ts-impl/artifactId>
<version>2.4.0-SNAPSHOT</version>

<dependencies>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
</dependencies>

只有一个类...

import javax.inject.Named;

@Named("transactionServiceExternal")
public class TransactionServiceExternalImpl
{
}

我得到错误

  • jdk1.5.0_22
  • jdk1.6.0_29
  • jdk1.6.0_43
  • jdk1.6.0_43_32位

但不是...

  • jdk1.7.0_05

有人有什么想法吗?

注释:Apache Maven 3.0.4 (r1232337; 2012-01-17 08:44:56+0000)


我现在知道原因是Maven Javadoc Plugin从2.9.1改成了2.10。这就是问题的原因。

我可以看到这个警告...

[警告] org.apache.maven.plugins 的“build.plugins.plugin.version”:缺少 maven-javadoc-plugin。[警告] org.apache.maven.plugins 的“build.plugins.plugin.version”:缺少 maven-deploy-plugin。

通过在我的 pom 中设置以下...

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>

我可以将版本修复回上一个版本。

我会向 Maven Javadoc 创建者提出错误。


http://jira.codehaus.org/browse/MJAVADOC-407


附带说明:您可以克隆版本 2.9.1 的 SVN 存储库,将 pom 更新为 2.10.1,执行 mvn 安装以将其放入 M2 文件夹中。你应该重新开始工作,你只需要在真正的版本发布时删除这个 tmp 版本。

最佳答案

在我们的项目中遇到了同样的问题。有很多人遇到这个问题,所以应该是关于 maven-javadoc-plugin 的问题 maven-javadoc-plugin breaks mvn release:perform在第一个答案中说明。 jira 问题是 http://jira.codehaus.org/browse/MJAVADOC-408 .

临时解决方案:

  • 使用 -Dmaven.javadoc.skip=true 执行构建选项
  • 在 pom.xml 中添加此属性 <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
  • 在您的插件管理部分将 maven-javadoc-plugin 版本修复为 2.9.1,例如
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
</plugin>
</plugins>
</pluginManagement>

希望问题尽快解决。

更新根据 Noremac 在评论中的说法,如果您正在使用 release plugin 并想将参数传递给它,正确的方法是 -Darguments="-Dmaven.javadoc.skip=true"。

我会在我的回答中保留另一种方式,因为这在任何使用 javadoc 的 Maven 构建中都会发生。

更新 2评论中的 TheConstructor 也说 2.10.1 版本解决了这个问题。我无法检查出来。

关于Javadoc 生成失败 : ClassCastException: com. sun.tools.javadoc.ClassDocImpl 无法转换为 com.sun.javadoc.AnnotationTypeDoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25971832/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com