<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog.grejpfrut.org &#187; maven-site-plugin</title>
	<atom:link href="http://grejpfrut.org/blog/tag/maven-site-plugin/feed/" rel="self" type="application/rss+xml" />
	<link>http://grejpfrut.org/blog</link>
	<description>a DRY KISS</description>
	<lastBuildDate>Fri, 22 Jan 2010 20:58:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>M2: Tworzymy stronę projektu</title>
		<link>http://grejpfrut.org/blog/2006/11/21/m2-tworzymy-strone-projektu/</link>
		<comments>http://grejpfrut.org/blog/2006/11/21/m2-tworzymy-strone-projektu/#comments</comments>
		<pubDate>Tue, 21 Nov 2006 21:15:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[po polsku]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[maven-site-plugin]]></category>

		<guid isPermaLink="false">http://maneo.webd.pl/blog/?p=17</guid>
		<description><![CDATA[
Gdy zaczynałem swoje przygody z maven&#8217;em wydawało mi się, że głównym powodem dla którego warto użyć w projekcie maven&#8217;a jest to że sam generuje stronę dla projektu  . W m1.x można było za pomocą goal&#8217;a site wygenerować nie tylko stronę projektu, ale również (a może przede wszystkim) raporty oparte na statycznej analizie kodu, opis [...]]]></description>
			<content:encoded><![CDATA[<p>
<b>Gdy zaczynałem swoje przygody</b> z maven&#8217;em wydawało mi się, że głównym powodem dla którego warto użyć w projekcie maven&#8217;a jest to że sam generuje stronę dla projektu <img src='http://grejpfrut.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . W m1.x można było za pomocą goal&#8217;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ę&#8230;
</p>
<p>
Jak już wspomniałem <b>do tworzenia strony w m2 używa się plugin&#8217;a site</b> 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 <code>mvn site</code>, m2 swoim zwyczajem ściągnie pół internetu <img src='http://grejpfrut.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . 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 <a href="http://maven.apache.org/pom.html">tutaj</a> naprawdę warto się zapoznać).
</p>
<p>
<b>Czas dostosować stronkę do naszych potrzeb</b>, 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źć <a href="http://maven.apache.org/guides/mini/guide-site.html">tutaj</a>) nie jest to specjalnie wyuzdane <img src='http://grejpfrut.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . 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 (<a href="http://maven.apache.org/guides/mini/guide-apt-format.html">zobacz tu</a>). Site plugin pozwala tworzyć kilka wersji językowych naszej strony, wszystko dość dokładnie opisane na <a href="http://maven.apache.org/guides/mini/guide-site.html">wspomnianej wyżej stronie</a>. Znalazłem też na stronie samego pluginu kilka słów na temat tworzenia własnych skór dla generowanych przez m2 stron &#8211; <a href="http://maven.apache.org/plugins/maven-site-plugin/creating-a-skin.html">zobacz tu</a>
</p>
<p>
Teraz to co najsmaczniejsze &#8211; <b>raporty z statycznych analiz kodu</b>. W m2 udało mi się użyć następujących raportów: <a href="http://maven-plugins.sourceforge.net/maven-findbugs-plugin/">findbugs</a>, <a href="http://maven.apache.org/maven-1.x/plugins/checkstyle/">checkstyle</a>, <a href="http://pmd.sourceforge.net/maven-plugin.html">pmd</a>, <a href="http://maven.apache.org/plugins/maven-dependency-plugin/cpd.html">cpd</a>. Checkstyle w czasach gdy nawet dziecko wie do czego służy ctrl+shift+f pod <a href="http://eclipse.org">eclipse</a> traci trochę na znaczeniu, nie mniej wydaje mi się wart tych kilku linijek xml&#8217;a w pom&#8217;ie. To co zostanie wygenerowane nie będzie miało pełnej wartości jeżeli nie dorzucimy jeszcze dwóch rzeczy: <a href="http://maven.apache.org/plugins/maven-jxr-plugin/">jxr</a> i <a href="http://maven.apache.org/plugins/maven-javadoc-plugin/index.html">javadoc</a>. Pierwszy z nich generuje html&#8217;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 <img src='http://grejpfrut.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Aby włączyć te raporty do strony naszego projektu musimy w pom.xml stworzyć sekcje <code>reporting</code>. Przykładową realizację możecie znaleźć w <a href="http://calypso.cs.put.poznan.pl/project/weed/browser/trunk/WeedProject/pom.xml">tutaj</a>. Należy zwrócić uwagę na jeszcze jedną sekcje</p>
<pre class="brush: xml;">
 &lt;pluginRepositories&gt;
    &lt;pluginRepository&gt;
      &lt;id&gt;codehaus-snapshots&lt;/id&gt;
      &lt;name&gt;Codehaus snapshots&lt;/name&gt;
      &lt;url&gt;http://snapshots.maven.codehaus.org/maven2/&lt;/url&gt;
    &lt;/pluginRepository&gt;
  &lt;/pluginRepositories&gt;
</pre>
<p>Tak jak mówiłem na samym początku w chwili gdy tworzyłem tego pom&#8217;a bez snapshotów nie dało się tych raportów stworzyć, być teraz problem jest już nieaktualny. Gdy już przygotujemy naszego pom&#8217;a <code>mvn site</code> i pozstaje już tylko poprawiać błędy znalezione przez m2 <img src='http://grejpfrut.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Więcej o pluginie raportującym <a href="http://maven.apache.org/plugins/maven-project-info-reports-plugin/howto.html">tutaj</a>. Ostatnia praktyczna rada, często wykonanie <code>mvn site</code> 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. <code>mvn checkstyle:checkstyle</code>.
</p>
<p>
<b>To ostatni post nt. m2 &#8211; przynajmniej narazie <img src='http://grejpfrut.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </b> 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.</p>
]]></content:encoded>
			<wfw:commentRss>http://grejpfrut.org/blog/2006/11/21/m2-tworzymy-strone-projektu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
