web-dev-qa-db-fra.com

JDK 11+ et 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.

Quelqu'un a-t-il pu faire fonctionner javadoc sans avoir à changer la version source en 1.8 (comme suggéré dans d'autres forums)? J'utilise JDK v11.0.5 et le problème est toujours présent (également avec JDK 12+).

Edit: Cette erreur provient de maven et a été lancée par le plugin maven-javadoc. Je n'ai pas pu le faire fonctionner pour JDK 11+ même avec le <source>8</source> configuration.

12
Rafael Ibasco

Il y a eu un changement significatif de rupture depuis Java 9 pour l'utilisation de l'API Doclet

JEP 221: API Doclet simplifiée
Remplace l'ancienne API Doclet par une nouvelle API simplifiée qui exploite d'autres API standard existantes. Le doclet standard a été réécrit pour utiliser la nouvelle API Doclet

L'API existante et l'ancien doclet standard sont disponibles, mais n'ont pas été mis à jour pour prendre en charge de nouvelles fonctionnalités de langage, telles que les modules

L'ancienne API utilise com.Sun.javadoc package

L'API Doclet (également appelée API Javadoc) fournit un mécanisme permettant aux clients d'inspecter la structure au niveau de la source des programmes et des bibliothèques, y compris les commentaires javadoc intégrés dans la source.

Vous pouvez essayer d'utiliser la nouvelle API Doclet, voir exemples

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