Szybko zdasz sobie sprawę, że JDK8 jest dużo bardziej rygorystyczny (domyślnie), jeśli chodzi o Javadoc. ( link - patrz ostatni podpunkt)
Jeśli nigdy nie wygenerujesz żadnego Javadoc, to oczywiście nie napotkasz żadnych problemów, ale rzeczy takie jak proces wydawania Maven i możliwe, że kompilacje CI nagle zawiodą, gdy działały dobrze z JDK7. Wszystko, co sprawdza wartość wyjścia narzędzia Javadoc, teraz zakończy się niepowodzeniem. JDK8 Javadoc jest prawdopodobnie również bardziej warnings
rozwlekły w porównaniu z JDK7, ale nie o to tutaj chodzi. Mówimy o errors
!
To pytanie istnieje po to, aby zebrać propozycje, co z tym zrobić. Jakie jest najlepsze podejście? Czy te błędy powinny zostać naprawione raz na zawsze w plikach kodu źródłowego? Jeśli masz ogromną bazę kodu, może to być dużo pracy. Jakie są inne opcje?
Możesz również komentować historie o tym, co teraz zawodzi, a które wcześniej minęło.
Przerażające historie o tym, co teraz zawodzi
narzędzia wsimport
wsimport
tool to generator kodu do tworzenia konsumentów usług internetowych. Jest zawarty w JDK. Nawet jeśli użyjesz wsimport
narzędzia z JDK8, mimo to wygeneruje kod źródłowy , którego nie można skompilować za pomocą kompilatora javadoc z JDK8 .
Znacznik @author
Otwieram pliki z kodem źródłowym sprzed 3-4 lat i widzę to:
/**
* My very best class
* @author John <john.doe@mine.com>
*/
To teraz kończy się niepowodzeniem z powodu znaku <. Ściśle mówiąc jest to uzasadnione, ale niezbyt wybaczające.
Tabele HTML
Tabele HTML w Twoim Javadoc? Rozważ ten prawidłowy kod HTML:
/**
*
* <table>
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
To teraz kończy się niepowodzeniem i pojawia się komunikat o błędzie no summary or caption for table
. Szybką naprawę można zrobić w ten sposób:
/**
*
* <table summary="">
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
ale dlaczego to musi być błąd typu stop-the-world z narzędzia Javadoc, bije mnie?
Rzeczy, które teraz zawodzą z bardziej oczywistych powodów
- Nieprawidłowe linki, np
{@link notexist}
- Nieprawidłowy format HTML, np
always returns <code>true<code> if ...
AKTUALIZACJA
Spinki do mankietów:
Znakomity blog na ten temat autorstwa Stephena Colebourne'a .