Ich habe eine benutzerdefinierte Taglet-Bibliothek mit Namen geschrieben, die start mit einem Punkt beginnen: .codelet
, .codelet.and.out
, und so weiter. Es ist mit JDK 7 kompiliert.
Beim Erstellen von JavaDoc mit dem% 1.7 javadoc.exe
funktioniert es gut. Aber wenn es mit JDK 8 erzeugt wird, schlägt es fehl, weil
Wenn ich den Code ändere, benutze das Taglet (nicht den Taglet-Code selbst) in {@codelet mypkg.Temp}
:
Ändern des Namens im Taglet-Quellcode zu cod.elet
( code.let
ist nicht gut, weil code
ein bereits vorhandener Taglet-Name ist) und Verwendung dieses neuen Namens funktioniert.
Die JavaDoc-Tool-Dokumentation für die Option -tag
( am Ende des Abschnitts) heißt es:
Konflikte vermeiden: Wenn Sie einen eigenen Namespace erstellen möchten, können Sie eine dot-separated Benennungskonvention verwenden, die der für Pakete verwendeten ähnelt: com.mycompany.todo. Oracle wird weiterhin Standard-Tags erstellen, deren Namen keine Punkte enthalten. Ein von Ihnen erstelltes Tag überschreibt das Verhalten eines Tags mit dem von Oracle definierten Namen. Wenn Sie ein @ Todo-Tag oder -Taglet erstellen, hat es immer dasselbe Verhalten, das Sie definieren, selbst wenn Oracle später ein Standard-Tag mit demselben Namen erstellt.
Also fehlt mir hier etwas? Oder ist es eine undokumentierte Veränderung, die einfach wirklich nervt? Weil es eine ziemlich große Änderung in meiner Bibliothek erfordert, wenn das der Fall ist.
Zu Ihrer Information: Taglet-Übersichtsdokumente
Also verpasse ich hier etwas?
Nun, der von Ihnen zitierte Abschnitt der Dokumentation sagt Folgendes:
"... dann können Sie eine dot-separated Benennungskonvention verwenden, die der für Pakete verwendeten ähnelt: com.mycompany.todo"
Beachten Sie, dass die Namenskonvention "dot-separated" lautet, nicht "Namen mit Punkten in ihnen".
Beachten Sie, dass dort "ähnlich wie für Pakete verwendet" steht. Wenn Sie versuchen, ".mypackage" als Paketnamen zu verwenden, würde der Compiler "No way!" Sagen.
Ich habe gelesen, dass Ihr ".codelet" -Markennamen nicht die in der Dokumentation angegebenen Kriterien erfüllt. Was also passiert ist, ist, dass die Java 8-Version von javadoc
geändert wurde, um die Namensregeln für Taglets streng zu erzwingen. Aus Ihrer Sicht ist das bedauerlich, aber letztendlich liegt das Problem in Ihren Javadoc-Kommentaren, nicht im Tool.