7

問題は、Java 1.8 と maven-enunciate-plugin を連携させる方法です。

Maven プラグインorg.codehaus.enunciate version 1.29と OSX JDK を使用すると、1.7.0_25すべて問題ありません。Enunciate は依存してaptおり、このランタイム警告が 1.7.0_25

[情報] enunciate:generate ステップを呼び出しています...

警告: apt ツールとそれに関連する API は、次の主要な JDK リリースで削除される予定です。これらの機能は、javac と標準化された注釈処理 API、javax.annotation.processing および javax.lang.model に取って代わられました。javac の注釈処理機能に移行することをお勧めします。詳細については、javac のマニュアル ページを参照してください。

1.8.0_05ビルドへの変更に失敗した場合 ...

apt実際になくなっているため、com.sun.mirror.apt.AnnotationProcessorFactory見つからないことに関する実行時エラーが発生します。

mvn install -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
4

1 に答える 1

5

EDIT 2015 年 7 月: この元の質問とこの回答は、Enunciate 1.x が最新のときに作成されました。以下のコメントで説明されているように、1.x はまだ Java 1.8 をサポートしていませんが、2.0 M-1 では Java 1.8 のサポートが制限されています。つまり、ドキュメントは生成されますが、API モジュールはサポートされません。

@bmargulies の推奨に従って、JIRA ページを見ました (最初にすべきだったと思います!) JIRA ENUNCIATE-701 の言い換え

「 Enunciate / JDK8 の互換性については、まだタイムラインはありません。」

Enunciate は Github に移動しました。問題は#68です

于 2014-05-28T22:09:15.163 に答える