Archive for the ‘maven-site-plugin’ tag
M2: Tworzymy stronę projektu
Gdy zaczynałem swoje przygody z maven’em wydawało mi się, że głównym powodem dla którego warto użyć w projekcie maven’a jest to że sam generuje stronę dla projektu
. W m1.x można było za pomocą goal’a site wygenerować nie tylko stronę projektu, ale również (a może przede wszystkim) raporty oparte na statycznej analizie kodu, opis zależności, statystyki związane z repozytorium. W m2 część z raportów jest wciąż niedostępna, a żeby użyć innych musiałem posiłkować się wersjami pluginów wprost z repozytorium. Krok po kroku zbudujemy sobie taką stronkę…
Jak już wspomniałem do tworzenia strony w m2 używa się plugin’a site korzystając z projekty który wygenerowaliśmy w poprzednich postach możemy sprawdzić jak to działa. W katalogu głównym wystarczy wydać polecenie mvn site, m2 swoim zwyczajem ściągnie pół internetu
. Gdy skończy w target/site będziemy mieli wygenerowaną stronkę dla naszego projektu. Rzeczy dotyczące samego projektu jak: adres strony, opis, adres repozytorium, deweloperzy którzy biorący udział w projekcie, zależności projektu należy umieścić w pom.xml (kompletna referencja tutaj naprawdę warto się zapoznać).
Czas dostosować stronkę do naszych potrzeb, jeżeli chcemy dodać trochę swoich własnych linków, jakąś dokumentację dotyczącą naszego projektu musimy stworzyć dodatkowy katalog w strukturze naszego projektu /src/site a w nim stworzyć plik site.xml. Przykładową zawartość (jak i całe objaśnienie możecie znaleźć tutaj) nie jest to specjalnie wyuzdane
. Na tej samej stronie znajdziecie informacje także o katalogu /src/site/apt w którym przechowywana jest w formacie apt treść która będzie później umieszczona na stronie. APT czyli almost plain text to format który za pomocą kilku prostych konstrukcji (podobnie jak w wiki) pozwoli stworzyć przyzwoicie wyglądający dokument (zobacz tu). Site plugin pozwala tworzyć kilka wersji językowych naszej strony, wszystko dość dokładnie opisane na wspomnianej wyżej stronie. Znalazłem też na stronie samego pluginu kilka słów na temat tworzenia własnych skór dla generowanych przez m2 stron – zobacz tu
Teraz to co najsmaczniejsze – raporty z statycznych analiz kodu. W m2 udało mi się użyć następujących raportów: findbugs, checkstyle, pmd, cpd. Checkstyle w czasach gdy nawet dziecko wie do czego służy ctrl+shift+f pod eclipse traci trochę na znaczeniu, nie mniej wydaje mi się wart tych kilku linijek xml’a w pom’ie. To co zostanie wygenerowane nie będzie miało pełnej wartości jeżeli nie dorzucimy jeszcze dwóch rzeczy: jxr i javadoc. Pierwszy z nich generuje html’ową wersje kodu źródłowego tak aby można było odwoływać się do konkretnej linii. Jest to dośc przydatne ponieważ pozostałe raporty (jak np. pmd) w wygenerowanych zestawieniach linkują konkretne miejsce w kodzie i możemy zobaczyć o co dokładnie chodzi. Javadoc nie wymaga chyba komentarza
. Aby włączyć te raporty do strony naszego projektu musimy w pom.xml stworzyć sekcje reporting. Przykładową realizację możecie znaleźć w tutaj. Należy zwrócić uwagę na jeszcze jedną sekcje
<pluginRepositories>
<pluginRepository>
<id>codehaus-snapshots</id>
<name>Codehaus snapshots</name>
<url>http://snapshots.maven.codehaus.org/maven2/</url>
</pluginRepository>
</pluginRepositories>
Tak jak mówiłem na samym początku w chwili gdy tworzyłem tego pom’a bez snapshotów nie dało się tych raportów stworzyć, być teraz problem jest już nieaktualny. Gdy już przygotujemy naszego pom’a mvn site i pozstaje już tylko poprawiać błędy znalezione przez m2
. Więcej o pluginie raportującym tutaj. Ostatnia praktyczna rada, często wykonanie mvn site może trwać dłuższą chwilę, jeżeli zależy nam na wynikach konkretnego raportu. Warto wiedzieć, że każdy raport można wywołać z linii poleceń np. mvn checkstyle:checkstyle.
To ostatni post nt. m2 – przynajmniej narazie
myśle, że po zapoznaniu się z linkami które umieściłem w tych postach każdy zyska już odpowiednią biegłość w wyszukiwaniu informacji na stronach mavena. Mam nadzieje, że komuś się to przyda.