2014-09-25 5 views
49

Quali sono le soluzioni migliori quando si esegue javadoc utilizzando JDK 8 e si riceve questo errore.Javadoc in JDK 8: "elemento auto-chiusura non valido" non valido

Sembra che per JDK 8 è stato deciso che i tag come <br /> e <p /> dovrebbero generare errori, perché non sono valide (rigoroso) HTML 4. see discussion JDK mailing list here

mi chiedo, perché volevo solo a compilare alcune java progetto utilizzando Maven e inciampato su questo problema. Certo, posso presentare un ticket con il progetto (e credo che lo farò), ma sarebbe bello se ci fosse un modo per disabilitare questo comportamento (per una macchina). Altrimenti, mi aspetto che molti progetti debbano essere risolti prima di poter essere costruiti su JDK 8 senza problemi.

+5

Does -Xdoclint: nessuno funziona? –

+0

Grazie per aver segnalato questa opzione! – JE42

+2

Googling per questa opzione ha prodotto un link molto carino: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html – JE42

risposta

25

Per questi due casi particolari, penso che l'azione consigliata sia sostituirli con <p>. This è il collegamento alla documentazione Oracle.

+0

La migliore raccomandazione proviene da @ JE42 per impostare '-Xdoclint: none. Utilizzando questo http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html – Abhijeet

14

Tratto da "What's New in JDK 8" da oracle.com:

Lo strumento javac ora ha il supporto per il controllo del contenuto dei commenti Javadoc per le questioni che potrebbero portare a vari problemi, come ad esempio problemi di accessibilità HTML valida o, nei file che vengono generati quando viene eseguito javadoc. La funzione è abilitata dalla nuova opzione -Xdoclint. Per ulteriori dettagli, vedere l'output dall'esecuzione di "javac -X". Questa funzione è disponibile anche nello strumento javadoc e viene abilitata per impostazione predefinita.

Ora ho fatto quello che mi ha detto di fare. Su JDK 7, l'output di "javac -X" non menziona l'opzione -Xdoclint. Tuttavia, il JDK 8, dà:

-Xdoclint:(all|none|[-]<group>)[/<access>] 
    Enable or disable specific checks for problems in javadoc comments, 
    where <group> is one of accessibility, html, missing, reference, or syntax, 
    and <access> is one of public, protected, package, or private. 

Quindi, eseguire l'utilità Javadoc come segue:

javadoc.exe -Xdoclint:none <other options...> 

Nel mio script, l'errore lei ha citato scomparso utilizzando questa opzione.

+1

Sì, è corretto. Tuttavia, javdoc di JDK 7 fallirà con questa opzione, il che significa che devi rilevare il supporto per la nuova opzione. Alla fine, ho finito per aggiustare l'html. – JE42

+0

Se il progetto sta usando maven è possibile utilizzare i profili che si attivano solo per jdk8. Probabilmente è meglio correggere l'HTML se possibile e presentare un bug al progetto. –

13

Per rimuovere gli errori nelle JavaDocs basta sostituire:

  • <p/> con appena <p>
  • <br/> con appena <br>

Tutto funziona bene dopo la correzione in modo eccettuato.