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 la <source>8</source>
configuration.
Réponses:
Comme suggéré dans le traqueur de problèmes OpenJDK, cela peut être contourné avec la définition de la source sur le plugin Javadoc:
la source
Has anyone been able to make javadoc work without having to change the source version to 1.8
javadoc produit des liens vers les packages que vous utilisez, par exemple vers les classes documentées dans
.../javase/11/docs/api
. Alors que vos commentaires sont dans un module sans nom, les cibles ne le sont pas et javadoc ne peut pas combiner ces deux. Il produit unpackage-list
ou unelement-list
fichier, vous ne pouvez donc pas mélanger des modules (packages) sans nom avec des modules nommés.Je n'ai pas trouvé de moyen de limiter les liens que javadoc essaie de produire; vous devrez donc peut-être utiliser des modules pour votre propre projet. Cela me semble ridicule, juste pour rendre javadoc heureux. Je suppose que ce n'est qu'une des raisons pour lesquelles tant de gens s'en tiennent à Java 8.
la source
Il y avait une importante rupture de changement depuis Java 9 pour l' utilisation de l' API Doclet
L'ancienne API utilise le package com.sun.javadoc
Vous pouvez essayer d'utiliser la nouvelle API Doclet, voir des exemples
la source