2015-08-26 13 views
5

C'è un modo semplice per analizzare il codice sorgente per elencare il numero di classi che non hanno javadoc?Elenca tutte le classi SENZA Javadoc

Come parte di un esercizio di debito tecnico, voglio elencare tutti questi file e condividere l'elenco tra i membri del team affinché gli autori originali li scrivano.

Nota: Stiamo usando Gradle come sistema di compilazione

UPDATE ... javadocs così vuoto vengono creati per impostazione predefinita, ma i nostri sviluppatori havnt le riempirono in gran parte. Mi piace essere in grado di vedere tutte le classi che non hanno alcuna descrizione nel documento a livello di classe. Non mi preoccupo troppo dei metodi.

+0

Il tuo problema sembra molto più complesso di questo, perché come si definisce "has javadoc"? È sufficiente avere commenti a livello di classe o anche a livello di metodo. Che cosa succede se si dispone di un javadoc autogenerato come **/@author Alex/**. Tecnicamente è un javadoc ma non ha nulla in esso –

+0

Apparentemente dovrebbe esserci. Abbiamo un rapporto di questo tipo sul cubo del sonar, anche se, se ricordo, mostra il numero di metodi pubblici non documentati. – John

+0

Parlando di SonarQube, perché non aggiungerlo nello stack di integrazione continua? – NiziL

risposta

5

Un modo semplice sarebbe utilizzare Checkstyle.

Scarica il file jar e creare un file di configurazione XML (javadoc_checks.xml) come questo:

<module name="Checker"> 
    <module name="TreeWalker"> 
     <module name="JavadocType"/> 
     <module name="JavadocMethod"/> 
     <module name="JavadocVariable"/> 
     <module name="JavadocStyle"/> 
    </module> 
</module> 

Ora eseguire il seguente comando (supponendo che tutto è nella stessa directory e src contiene il codice):

java -jar checkstyle-6.9-all.jar -c javadoc_checks.xml src/ 

Se, ad esempio, si vuole solo verificare la presenza di javadoc per le classi e interfacce mancante, quindi basta questo nel XML di configurazione:

<module name="Checker"> 
    <module name="TreeWalker"> 
     <module name="JavadocType"/> 
    </module> 
</module> 

E l'uscita sarebbe qualcosa di simile:

C:\src\com\example\Test.java:137: Javadoc comment missing. 
C:\src\com\example\Test1.java:3: Javadoc comment missing. 
C:\src\com\example\Test2.java:12: Javadoc comment missing. 

Ci sono un sacco di opzioni, è possibile vedere in:

http://checkstyle.sourceforge.net/config_javadoc.html

http://checkstyle.sourceforge.net/cmdline.html

+0

Questo sembra essere quello che sto cercando. Grazie. Ci provo e ti faccio sapere come salgo. Molto apprezzato. –

+0

Il problema con questo approccio è che intellij genera automaticamente Jdocs per noi nel modulo/** * Creato da bob il 18/08/2015. */Questo si presenta come un javadoc anche se è tutto ma inutile. Devo trovare le classi che non hanno ALTRE informazioni che la linea "creata da" –

+0

È possibile configurare Checkstyle per generare un errore se javadoc è "non valido". Controlla la documentazione su http://checkstyle.sourceforge.net/config_javadoc.html. Ad esempio, puoi attivare il modulo 'NonEmptyAtclauseDescription' (i javadoc che non hanno ad esempio @param o @return saranno rifiutati) o' SummaryJavadocCheck' con il testo proibito "Creato da *" (javadocs con quel testo sarà respinto). –

Problemi correlati