2015-08-26 17 views
5

Czy istnieje prosty sposób analizy kodu źródłowego, aby wyświetlić listę klas, które nie mają żadnych javadocs?Lista wszystkich klas BEZ Javadocs

W ramach długu technicznego chcę wymienić wszystkie te pliki i udostępnić listę wśród zespołu, aby autorzy oryginalni je napisali.

Uwaga: Używamy Gradle jako system kompilacji

UPDATE ... tak pusto Javadocs dostać utworzonej domyślnie ale nasze deweloperów havnt wypełnione ich dużo. Chciałbym móc zobaczyć wszystkie klasy, które nie mają żadnego opisu w dokumencie na poziomie klasy. Nie mam nic przeciwko metodom za dużo.

+0

Twój problem wydaje się dużo bardziej złożone niż to, ponieważ jak definiujesz "ma javadoc"? Czy wystarczy komentarze na poziomie klasy, czy też na poziomie metody. Co jeśli masz autogenerację javadoc jak **/@author Alex/**. Jest to technicznie javadoc, ale nie ma w nim nic. –

+0

Najwyraźniej powinno być. Mamy taki raport o kostce sonaru, chociaż jeśli sobie przypomnę, pokazuje liczbę nieudokumentowanych metod publicznych. – John

+0

Mówiąc o SonarQube, dlaczego nie dodać go do stosu ciągłej integracji? – NiziL

Odpowiedz

5

Łatwym sposobem byłoby użycie Checkstyle.

Pobierz plik jar i utworzyć plik konfiguracyjny XML (javadoc_checks.xml) tak:

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

Teraz uruchom następujące polecenie (zakładając, że wszystko jest w tym samym katalogu i src zawiera kod):

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

Jeśli, na przykład, po prostu chcesz sprawdzić brakuje Javadocs dla klas i interfejsów, a potem po prostu trzeba to w XML config:

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

a wyjście byłoby coś jak:

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. 

Istnieje wiele opcji, można je zobaczyć w:

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

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

+0

To wygląda na to, czego szukam. Dzięki. Zrobię to i dam ci znać, jak sobie radzę. Bardzo doceniane. –

+0

Problem z tym podejściem polega na tym, że intellij generuje automatycznie Jdocs dla nas w formie/** * Utworzona przez bob dnia 18/08/2015. */To pokazuje się jako javadoc, mimo że jest prawie bezużyteczny. Muszę znaleźć klasy, które nie mają WIĘCEJ informacji, że linia "created by" –

+0

Możesz skonfigurować Checkstyle, aby zgłaszać błąd, jeśli javadoc jest "nieważny". Sprawdź dokumentację na http://checkstyle.sourceforge.net/config_javadoc.html. Na przykład można aktywować moduł 'NonEmptyAtclauseDescription' (javadocs, które nie mają na przykład @param lub @return zostaną odrzucone) lub' SummaryJavadocCheck' z zabronionym tekstem "Created by *" (javadocs, które mają ten tekst będzie odrzucony). –