Ich möchte in der Lage sein, Javadoc - Kommentare (z. B. im generierten Code von LWJGL ) programmgesteuert in andere Formate (z. B. Markdown ) zu konvertieren. Dies würde es mir ermöglichen, Dinge wie das automatische Generieren eines idiomatischen Clojure -Wrappers für LWJGL mit menschenlesbaren Docstrings zu tun.
Ich kann die Javadoc-Kommentare mit JavaParser aus einer Quelldatei auswählen , aber hier bleibe ich hängen. Die Antworten auf diese beiden Stack Overflow-Fragen von 2011 und 2013 empfehlen die Verwendung der Doclet-API , aber gemäß der Antwort auf diese Frage von 2015:
Die Klassen in den
com.sun.tools.*
Paketen sollten als interne APIs behandelt werden. Es gibt klare Warnungen in der Java-Dokumentation, die besagen, dass Sie keinen Code schreiben sollten, der gegen diese APIs verstößt.Zum Beispiel:
- Warum Entwickler keine Programme schreiben sollten, die 'sun'-Pakete aufrufen
- Schließen der geschlossenen APIs
In Java 8 sagt der Header der Klasse, die Ihr Code zu verwenden versucht:
Dies ist NICHT Teil einer unterstützten API. Wenn Sie Code schreiben, der davon abhängt, tun Sie dies auf eigenes Risiko. Dieser Code und seine internen Schnittstellen können ohne Vorankündigung geändert oder gelöscht werden.
(Die Fettschrift ist im Original!)
Es wurde nicht gesagt, dass in Java 7 (autsch!) Tatsächlich gibt es Versionen der Javadoc-FAQ, die die Leute zu ermutigen scheinen, die Standard-Doclet-Klassen wiederzuverwenden. Leider hat Oracle beschlossen, diese Klassen zu schließen, und auch einige bahnbrechende API-Änderungen vorgenommen, die dies verstärken, unabhängig davon, ob dies die Absicht der Änderungen war oder nicht
Eine Google-Suche nach "Javadoc-Parser" ergab nichts anderes als Doclet selbst. Da Doclet nicht unterstützt wird, scheint es mir, dass der beste Weg zur Lösung meines Problems darin besteht, selbst eine Javadoc-Parsing-Bibliothek zu schreiben. Dass so etwas nicht schon existiert, erscheint mir jedoch unglaubwürdig. Ich bin kein Experte für Javadoc; Vielleicht gibt es kein Standard-"Javadoc-Format" und die Frage "Wie kann ich ein Javadoc parsen" ist falsch .
Ich hätte gerne eine Java-Bibliothek dafür
"/** foo */"
) und gibt eine Art Analysebaum zurücktools.jar
)Gibt es eine unterstützte Javadoc-Parsing-Bibliothek oder sollte ich selbst eine schreiben?
Es gibt ein doc2java-Projekt, das dies unterstützt:
Es gibt auch eine Suchmaschine, die JavaDocs hosten und durchsuchbar machen kann.
Verweise
Benutzer207421
sun.*
Pakete, vor denen es eine bekannte Warnung gibt, mit dencom.sun.*
Paketen, vor denen es keine gibt. Es wäre beispielsweise unmöglich, ein JNDI-Programm ohne die Verwendung von zu schreibencom.sun.*
.Sam Estep
tools.jar
, die enthältcom.sun.javadoc.*
, "kann nicht verteilt werden". Wie kann ich also eine App verteilen, die von abhängtcom.sun.javadoc.*
? Oder ist das nicht das Paket, das ich benötigen würde, um Javadoc-Kommentare programmgesteuert zu analysieren?EJP
Sam Estep
EJP
Sam Estep
Ira Baxter
Sam Estep
Ira Baxter
Sam Estep