2011-08-30 14 views
5

Współpracujemy z wieloma starszych kod i myślimy o wprowadzeniu pewnych wskaźników dla nowego kodu. Czy możliwe jest zezwolenie Findbugs i Checkstyle na uruchamianie tylko zmienionych plików zamiast pełnego projektu?Checkstyle i Findbugs dla zmienionych plików tylko na Jenkins (i/lub Hudson)

Byłoby miło zapewnić, że sprawdzany jest tylko plik z minimalną jakością, ale sama baza kodu nie została (jeszcze) dotknięta i oceniona, aby nie mylić ludzi przez tysiące problemów.

Odpowiedz

3

Teoretycznie byłoby to możliwe. Można by użyć skrypt do analizowania SVN (lub cokolwiek SCM) zmiana dzienniki po danym dniu rozpoczęcia zidentyfikować pliki .java z tych zestawów zmian i zbudować dwa wzory z nich:

  • Findbugs Maven Plugin spodziewa przecinek -separated lista klasie (lub pakietu) nazw dla parametru onlyAnalyze, więc musisz przetłumaczyć nazwy plików, aby w pełni kwalifikowanych nazw klasy (to dostanie trudne, gdy masz do czynienia z klas wewnętrznych)
  • Maven Checkstyle Plugin jest jeszcze gorsza, oczekuje pliku konfiguracyjnego dla parametru packageNamesLocation. Niestety, dozwolone są tylko pakiety, a nie pojedyncze pliki. Tak więc będziesz musiał tłumaczyć nazwy plików na pakiety.

W powyższych przykładach zakładam, że używasz maven. Jestem prawie pewien, że podobne rzeczy można zrobić z mrówką, ale nie wiem.

ja prawdopodobnie użyć Groovy skryptu zamiast skryptu powłoki do osiągnięcia powyższych wyników.

+0

mam zamiar użyć Jenkins Maven i GIT. Pisanie zbyt wiele nie było tak naprawdę preferowane. Czy istnieje wtyczka, opcja lub coś już dostępnego? Nie możemy tu być pierwszymi osobami, które chcą sprawdzić tylko nowe pliki. –

+0

@ Rick-Rainer, gdy masz nietypowe wymagania, zwykle musisz je wdrożyć samodzielnie. Przepraszam. –

+0

Chociaż byłoby to takie niezwykłe ... :-(Dzięki za podpowiedź, tak czy inaczej może ktoś ma rozwiązanie z pudełka !? –

2

Findbugs ma ant zadania, które może zrobić diffs przed różnymi wynikami findbugs aby zobaczyć tylko delty, więc tylko raportowania nowych błędów, zobacz

http://findbugs.sourceforge.net/manual/datamining.html

+0

Właściwie to jest fajna funkcja, w ten sposób można sprawdzić nowe wprowadzone błędy. To trochę pomaga.Myślę, że można też jakoś wprowadzić tę cechę do Mavena.Spróbuję to sprawdzić.Dzięki za podpowiedź! –