FindBugs
Transkrypt
FindBugs
Saramak.eu
FindBugs - maven
Autor: Administrator
sobota, 08 listopad 2008
Troszkę się męczyłem z tym, ale w końcu działa.
FindBugs - narzędzie, które lepiej niż eclipse lub inne ide, szuka błędów w kodzie, findBugs działa na
kodzie binarnym. Wychwytuje takie bagi jak np.
- sprawdzania tego samego warunku 2 razy - nie potrzebnie
- ewidentne działanie na wartości nullowej
- działanie na zmiennych lokalnych, które nigdy nie zostaną przekazane dalej
- wykrycie porównania zmiennych String za pomocą ==
- wykrycie pustych metod
- wykrycie pustych catchy
- pętle które nie mają prawa się wykonać
- i wiele innych
Szczerze powiedziawszy to dzieki temu narzędziu, wykryłem u siebie kilka bagów, i kilka potencjalnych
miejsc, gdzie mogły by wystąpić.
url projektu: http://findbugs.sourceforge.net/
Wtyczka do eclipse: http://findbugs.sourceforge.net/downloads.html
Wtyczka do eclipsa działa super. Prawym przyciskiem myszki z menu kontekstowego wybieramy
findBugs->findBugs, szuka błędów, póżniej przełączamy perspektywę na findBugs i w eksplorerze
projektu powininny pokazać się błędy.
Maven
Z wtyczką do mavena miałem problem, a zwłaszcza z wersją 1.2
Ale dużo w necie było o wersji 2.0:
Gotowa konfiguracja:
codehaus
http://snapshots.repository.codehaus.org
codehaus
http://snapshots.repository.codehaus.org
example-ws
http://saramak.eu
Powered by Joomla!
Wygenerowano: 8 March, 2017, 04:57
Saramak.eu
org.codehaus.mojo
findbugs-maven-plugin
2.0-SNAPSHOT
org.codehaus.mojo
findbugs-maven-plugin
2.0-SNAPSHOT
maven-compiler-plugin
1.5
1.5
UTF-8
org.codehaus.mojo
findbugs-maven-plugin
2.0-SNAPSHOT
Low
Default
${project.build.outputDirectory}
true
true
${project.build.directory}
${project.reporting.outputDirectory}
${project.build.directory}
po wywołaniu komendy:
mvn site
generuje raport z błędami.
po wywołaniu komendy:
mvn findbugs:findbugs
generuje xml-a opisującego błędy
mvn findbugs:gui
uruchamia narzędzie graficzne pomocnicze.
http://saramak.eu
Powered by Joomla!
Wygenerowano: 8 March, 2017, 04:57
Saramak.eu
Wszystko można oczywiście skonfigurować:
Opis propertisów konfiguracyjnych znajdziemy tutaj:
http://mojo.codehaus.org/findbugs-maven-plugin/findbugs-mojo.html#classFilesDirectory
i w pl:
Required Parameters
Name
Type
Since
Description
classFilesDirectory
File
-
Folder zawierający, klasy do analizy. Domyślnie: (czyli target/classes/)
${project.build.outputDirectory}.
findbugsXmlOutputDirectory
File
1.2.0
Gdzie wygenerować xml-a z informacją o błędach, domyślnie: ${project.build.directory}.
outputDirectory
String
-
Gdzie wygenerować raport. Domyślnie: ${project.reporting.outputDirectory}.
xmlOutputDirectory
File
1.0.0
Gdzie wygenerować wiadomość xml z podsumowaniem: ${project.build.directory}.
Dodatkowe ale przydatne:
<effort>Min|Default|Max</effort> jak szczegółowo szykać
<threshold>High|Normal|Low|Exp|Ignore</threshold> - od której poprzeczki pokazywać błędy
<xmlOutput>true|false</xmlOutput>, generuj xml-a
<onlyAnalyze>org.codehaus.mojo.findbugs.*</onlyAnalyze> -analizuj tylko tą ścieżkę.
i inne.
http://saramak.eu
Powered by Joomla!
Wygenerowano: 8 March, 2017, 04:57