Ti accorgerai rapidamente che JDK8 è molto più rigoroso (per impostazione predefinita) quando si tratta di Javadoc. ( link - vedi l'ultimo punto elenco)
Se non si genera mai Javadoc, ovviamente non si verificheranno problemi, ma cose come il processo di rilascio di Maven e probabilmente i build CI non funzioneranno improvvisamente dove hanno funzionato perfettamente con JDK7. Tutto ciò che controlla il valore di uscita dello strumento Javadoc ora fallirà. JDK8 Javadoc è probabilmente anche più dettagliato warnings
rispetto a JDK7, ma non è questo lo scopo. Stiamo parlando errors
!
Questa domanda esiste per raccogliere proposte su cosa fare al riguardo. Qual è l'approccio migliore ? Questi errori dovrebbero essere corretti una volta per tutte nei file di codice sorgente? Se hai una base di codice enorme questo potrebbe richiedere molto lavoro. Quali altre opzioni esistono?
Sei anche invitato a commentare con storie di ciò che ora fallisce e che in precedenza sarebbe passato.
Storie horror di ciò che ora fallisce
strumenti wsimport
wsimport
tool è un generatore di codice per la creazione di utenti di servizi web. È incluso nel JDK. Anche se si utilizza lo wsimport
strumento di JDK8, ciò produrrà comunque un codice sorgente che non può essere compilato con il compilatore javadoc di JDK8 .
@author tag
Sto aprendo i file del codice sorgente di 3-4 anni e vedo questo:
/**
* My very best class
* @author John <john.doe@mine.com>
*/
Questo ora non riesce a causa del carattere <. A rigor di termini questo è giustificato, ma non molto indulgente.
Tabelle HTML
Tabelle HTML nel tuo Javadoc? Considera questo HTML valido:
/**
*
* <table>
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
Questo ora non riesce con messaggio di errore no summary or caption for table
. Una soluzione rapida è fare in questo modo:
/**
*
* <table summary="">
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
ma perché questo deve essere un errore irreversibile dallo strumento Javadoc mi batte ??
Cose che ora falliscono per ragioni più ovvie
- Link non validi, ad es
{@link notexist}
- HTML non valido, ad es
always returns <code>true<code> if ...
AGGIORNARE
link:
Ottimo blog sull'argomento di Stephen Colebourne .
-Xdoclint
anche con javac
per dirgli di controllare i documenti durante la compilazione ...