Sie werden schnell feststellen, dass JDK8 in Bezug auf Javadoc (standardmäßig) viel strenger ist. ( Link - siehe letzter Aufzählungspunkt)
Wenn Sie niemals Javadoc generieren, treten natürlich keine Probleme auf, aber Dinge wie der Maven-Release-Prozess und möglicherweise Ihre CI-Builds schlagen plötzlich fehl, wenn sie mit JDK7 einwandfrei funktionieren. Alles, was den Exit-Wert des Javadoc-Tools überprüft, schlägt jetzt fehl. JDK8 Javadoc ist im warnings
Vergleich zu JDK7 wahrscheinlich auch ausführlicher , aber das ist hier nicht der Umfang. Wir reden über errors
!
Diese Frage besteht darin, Vorschläge zu sammeln, was dagegen zu tun ist. Was ist der beste Ansatz? Sollten diese Fehler ein für alle Mal in den Quellcodedateien behoben werden? Wenn Sie eine riesige Codebasis haben, kann dies eine Menge Arbeit sein. Welche anderen Möglichkeiten gibt es?
Sie können auch gerne Kommentare zu dem abgeben, was jetzt fehlschlägt und was zuvor vergangen wäre.
Horrorgeschichten von dem, was jetzt scheitert
wsimport tools
wsimport
Das Tool ist ein Codegenerator zum Erstellen von Webdienstkonsumenten. Es ist im JDK enthalten. Selbst wenn Sie das wsimport
Tool von JDK8 verwenden, wird dennoch Quellcode erzeugt , der nicht mit dem Javadoc-Compiler von JDK8 kompiliert werden kann .
@author tag
Ich öffne Quellcodedateien, die 3-4 Jahre alt sind, und sehe Folgendes:
/**
* My very best class
* @author John <john.doe@mine.com>
*/
Dies schlägt nun aufgrund des Zeichens <fehl. Genau genommen ist dies gerechtfertigt, aber nicht sehr verzeihend.
HTML-Tabellen
HTML-Tabellen in Ihrem Javadoc? Betrachten Sie diesen gültigen HTML-Code:
/**
*
* <table>
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
Dies schlägt nun mit einer Fehlermeldung fehl no summary or caption for table
. Eine schnelle Lösung besteht darin, Folgendes zu tun:
/**
*
* <table summary="">
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
Aber warum muss dies ein Stop-the-World-Fehler des Javadoc-Tools sein?
Dinge, die jetzt aus offensichtlichen Gründen scheitern
- Ungültige Links, z
{@link notexist}
- Fehlgeformtes HTML, z
always returns <code>true<code> if ...
AKTUALISIEREN
Links:
Ausgezeichneter Blog zu diesem Thema von Stephen Colebourne .
-Xdoclint
sogar mit verwenden javac
, um es anzuweisen, die Dokumente beim Kompilieren zu überprüfen ...