当前位置: 首页 > 知识库问答 >
问题:

Java 1.8 上的 maven-enunciate-plugin 现在已从最新的 JDK(即注释处理工具)中删除.java

慕翰学
2023-03-14

问题是如何让java 1.8和maven-enunciate-plugin一起工作?

使用 maven 插件 org.codehaus.enunciate 版本 1.29 和 OSX JDK 1.7.0_25 一切都很好。发音取决于 apt,我在 1.7.0_25 中看到此运行时警告

[INFO]调用enuncicate:生成步骤。。。

警告:apt工具及其关联的API计划在下一个主要JDK版本中移除,这些功能已经被javac和标准化注释处理API取代,javax.annotation.processing和javax.lang.model.建议用户迁移到javac的注释处理功能;有关更多信息,请参阅javac手册页。

当更改到1.8.0_05构建失败…

apt确实不存在,因此未找到有关com.sun.mirror.apt.AnnotationProcessorFactory的运行时错误。

mvn安装-pl myProject-e-X

...

<snip>
urls[46] = file:/Users/k1/.m2/repository/org/codehaus/enunciate/enunciate-xml/1.29/enunciate-xml-1.29.jar
urls[47] = file:/Users/k1/.m2/repository/org/codehaus/enunciate/enunciate-java-client/1.29/enunciate-java-client-1.29.jar
urls[48] = file:/Users/k1/.m2/repository/org/codehaus/enunciate/enunciate-c/1.29/enunciate-c-1.29.jar
urls[49] = file:/Users/k1/.m2/repository/org/codehaus/enunciate/enunciate-obj-c/1.29/enunciate-obj-c-1.29.jar
urls[50] = file:/Users/k1/.m2/repository/org/codehaus/enunciate/enunciate-csharp/1.29/enunciate-csharp-1.29.jar
urls[51] = file:/Users/k1/.m2/repository/org/codehaus/enunciate/enunciate-ruby/1.29/enunciate-ruby-1.29.jar
urls[52] = file:/Users/k1/.m2/repository/org/codehaus/enunciate/enunciate-php/1.29/enunciate-php-1.29.jar
Number of foreign imports: 1
import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

-----------------------------------------------------

    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:165)
    ... 20 more
Caused by: java.lang.NoClassDefFoundError: com/sun/mirror/apt/AnnotationProcessorFactory
    at org.codehaus.enunciate.DocsMojo.loadMavenSpecificEnunciate(DocsMojo.java:107)
    at org.codehaus.enunciate.ConfigMojo.execute(ConfigMojo.java:326)
    at org.codehaus.enunciate.DocsMojo.execute(DocsMojo.java:81)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
    ... 20 more
Caused by: java.lang.ClassNotFoundException: com.sun.mirror.apt.AnnotationProcessorFactory
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:235)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227)
    ... 24 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

共有1个答案

汪辰阳
2023-03-14

2015年7月编辑:此原始问题和此答案是在《宣读1.x》最新版本时编写的。尽管1.x仍然不支持java 1.8,如下面的注释所述,2.0 M-1现在对java 1.8的支持有限,即生成文档但不支持API模块。

按照@bmargulies的建议,我查看了JIRA页面(我想我应该首先这样做!释义 JIRA 发音-701

"目前还没有明确的兼容/JDK8的时间表。"

发音已迁移到Github;那里的问题是#68

 类似资料:
  • 问题内容: 是否有任何工具/ Eclipse插件可以删除文件中的所有JavaDoc注释? 运行该工具后, 普通 (非JavaDoc)注释 应完整无缺 。 问题答案: 尝试使用此正则表达式在eclipse / sed /您最喜欢的具有正则表达式支持的编辑器中搜索替换。 将输入视为单行 起始字符串 零或更多 负面的展望 空格或非空格字符 尾随字符串 编辑 要解决字符串包含javadoc的情况,请使用此

  • 我有一个批处理文件,它运行了几个执行表修改的python脚本。 是否有更恰当地添加注释的语法?

  • 问题内容: 我使用JSR 269作为一种在编译过程中分析代码并在需要时使代码失败的方法。我无法在maven中显示注释处理器的输出(Ant会显示输出),我正在使用javax.annotation.processing.Messager来显示警告和错误,但是在maven中我看不到它的输出。(我确实知道它可以运行,因为它会生成应有的代码)。有任何想法吗? 问题答案: 我认为您正在遇到Maven错误,或者

  • 我使用JSR 269作为编译过程中分析代码的一种方式,如果需要的话,它会失败。我在maven中显示注释处理器的输出时遇到了麻烦(Ant确实显示输出),我使用javax.annotation.processing.Messager来显示警告和错误,但是在maven中我看不到它的输出。(我知道它运行,因为它生成了应该生成的代码)。有什么想法吗?

  • 有没有一种标准且简单的方法可以使用Maven插件从HTML模板(Thymeleaf)中删除注释?如果它能按惯例只为

  • 我有使用maven-processor-plugin的代码,让Hibernate在Java项目的文件夹一些类。我正在准备将项目迁移到Java 11,在开发环境和运行时环境中。 到目前为止,在Hibernate 4.3.10.Final和Java 8中一切正常。在安装JDK 11和使用Hibernate5.4.4.Final之后,我遇到了臭名昭著的<code>javax.annotation。生成的