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.
Hat jemand Javadoc zum Laufen gebracht, ohne die Quellversion auf 1.8 ändern zu müssen (wie in anderen Foren vorgeschlagen)? Ich verwende JDK v11.0.5 und das Problem ist immer noch vorhanden (auch mit JDK 12+).
Bearbeiten: Dieser Fehler stammt von maven und wird vom maven-javadoc-plugin ausgelöst. Ich konnte es trotz der <source>8</source>
Konfiguration nicht für JDK 11+ zum Laufen bringen .
Antworten:
Wie im OpenJDK Issue Tracker vorgeschlagen, kann dies umgangen werden, indem die Quelle im Javadoc-Plugin definiert wird:
quelle
Has anyone been able to make javadoc work without having to change the source version to 1.8
javadoc erstellt Links zu Paketen, die Sie verwenden, z. B. zu Klassen, die in dokumentiert sind
.../javase/11/docs/api
. Während sich Ihre Kommentare in einem unbenannten Modul befinden, sind dies die Ziele nicht, und Javadoc kann diese beiden nicht kombinieren. Es wird entweder einepackage-list
oder eineelement-list
Datei erstellt, sodass Sie unbenannte Module (Pakete) nicht mit benannten Modulen mischen können.Ich habe keine Möglichkeit gefunden, die von javadoc zu produzierenden Links einzuschränken. Daher müssen Sie möglicherweise Module für Ihr eigenes Projekt verwenden. Das scheint mir lächerlich, nur um Javadoc glücklich zu machen. Ich denke, dies ist nur einer der Gründe, warum so viele Leute an Java 8 festhalten.
quelle
Es gab eine signifikante Bruch Veränderung seit Java 9 für die Verwendung von Doclet API
Die alte API verwendet das Paket com.sun.javadoc
Sie können versuchen, die neue Doclet-API zu verwenden (siehe Beispiele)
quelle