web-dev-qa-db-ja.com

JDK 11+およびJavadoc

Exit code: 1 - javadoc: error - The code being documented uses packages in the unnamed module, but the packages defined in https://docs.Oracle.com/en/Java/javase/11/docs/api/ are in named modules.

(他のフォーラムで提案されているように)ソースのバージョンを1.8に変更せずにjavadocを機能させることができた人はいますか?私はJDK v11.0.5を使用していますが、問題はまだ存在しています(JDK 12+でも)。

編集:このエラーはmavenから発生し、maven-javadoc-pluginによってスローされました。 <source>8</source>構成を使用しても、JDK 11以降で機能させることができませんでした。

12
Rafael Ibasco

ドックレットAPIを使用するために Java 9 以降、重大な重大な変更がありました

JEP 221:簡略化されたドックレットAPI
古いドックレットAPIを、他の標準の既存のAPIを活用する新しい簡略化されたAPIに置き換えます。標準ドックレットは、新しいドックレットAPIを使用するように書き直されました

既存のAPIと古い標準ドックレットは利用可能ですが、モジュールなどの新しい言語機能をサポートするように更新されていません

古いAPIは com.Sun.javadoc パッケージを使用しています

ドックレットAPI(Javadoc APIとも呼ばれます)は、ソースに埋め込まれたjavadocコメントを含む、プログラムおよびライブラリのソースレベルの構造をクライアントが検査するためのメカニズムを提供します。

新しいドックレットAPIを使用してみることができます。 を参照してください

public class BasicDoclet implements Doclet {
@Override
public void init(Locale locale, Reporter reporter) {  }
@Override
public String getName() {
    // For this doclet, the name of the doclet is just the
    // simple name of the class. The name may be used in
    // messages related to this doclet, such as in command-line
    // help when doclet-specific options are provided.
    return getClass().getSimpleName();
}
0
user7294900