niedziela, 30 października 2011

Maven - Eclipse

Maven jest narzędziem do budowy oprogramowania.
Cechy Mavena:
  • standaryzuje rozmieszczenie katalogów w systemie, nazewnictwo bibliotek i archiwów,
  • umożliwia podział projektu na moduły, z których każdy ma własną konfigurację,
  • wszystkie dane związane z budową aplikacji i  potrzebnymi wtyczkami umieszczone są w pliku konfiguracyjnym POM (Project Object Model).,
  • proces budowania oparty jest na wtyczkach,
  • istnieje możliwość dziedziczenia i system zależności pozwalający ograniczyć powtarzanie kodu,
  • pozwala generować raporty,

Instalacja:
w Eclipsie wybieramy Help->Install New Software... Dodajemy stronę: http://m2eclipse.sonatype.org/sites/m2e  -> zaznaczamy wszystko ->instalujemy.

Pierwszy projekt:
File->New->Other...->Maven->Maven Project
Wybieramy archetyp, czyli rodzaj budowanej aplikacji (w tym przypadku do budowy prostego programu wystarczy zaznaczony maven-archetype-quickstart)

Uzupełniamy podstawowe informacje o projekcie:
  • GroupID - id organizacji tworzącej projekt np. com.mycompany.app,
  • ArtifactId - nazwa projektu,
  • modelVersion - wersja modelu POM,
  • Package – nazwa automatycznie utworzonej paczki z domyślną klasą,
Te i inne dane wpisane przy tworzeniu można później zmienić w pliku POM.xml.

Po utworzeniu projektu w pliku POM.xml mamy jeszcze pozycje:
  • packaging - rodzaj wynikowego archiwum jar,war,...
  • url - adres strony projektu
  • properties - project.build.sourceEncoding - zastosowane kodowanie
Struktura katalogów:
Dodanie biblioteki:
Aby dodać bibliotekę używaną w projekcie wystarczy dopisać ją do POM, a Maven sam już ją ściągnie i zamontuje. Aby to zrobić należy wpisać w sekcji <dependencies> </dependencies> nową zależność:

Dodanie biblioteki JUnit:
<dependency>
<groupId>junit</groupId>   <!--nazwa archiwum-->
<artifactId>junit</artifactId> <!--nazwa archiwum-->
<version>3.8.1</version>   <!--wersja archiwum-->
<scope>test</scope>   <!--zasięg widoczności artefaktu-->
</dependency>

Zakres widoczności <scope> dzielimy na:
  • test  - obecna tylko przy uruchomieniu testów, nie włączana do wynikowego archiwum,
  • compile - włączana do archiwum,
  • provided - udostępniona przez środowisko uruchomieniowe, nie włączana do archiwum,
  • system - udostępniania przez system,
  • import - dołącza artefakt typu POM,

Moduły:
Dzięki Maven można tworzyć projekty złożone z modułów, czyli innych projektów, projekty podrzędne dziedziczą z nadrzędnego.
POM projektu głównego:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>pl.kodujemy</groupId>
<artifactId>ProjektGlowny</artifactId>
<packaging>pom</packaging>   <!-- projekt nadrzędny trzeba zmienić na pom-->
<version>1.0-SNAPSHOT</version>
<name>kodujemy</name>
<url>http://maven.apache.org</url>
<modules>  <!-- litsta modułów projektu -->
<module>widok</module>
<module>model</module>
<module>kontroler</module>
</modules>
...
</project>

POM podrzędny:
<project>
<parent>   <!-- nazwa rodzica -->
<groupId>pl.kodujemy</groupId>
<artifactId>ProjektGlowny</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>pl.kodujemyy</groupId>
<artifactId>widok</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>widok</name>
<url>http://maven.apache.org</url>
...
</project>

Aby stworzyć moduł do projektu:
New->Other...->Maven->Maven Module
Wybieramy Parent Project - czyli projekt pod który chcemy się podpiąć, pamiętając, aby wcześniej zmienić wartość jego <packaging> na pom.

Funkcje:
Z poziomu menu kontekstowego PPM->Run As mamy do wyboru kilka funkcji Mavena do wyboru:
  • assembly,
  • build,
  • clean,
  • generate sources,
  • install – skopiowanie utworzonego artefaktu do lokalnego repozytorium,
  • package – utworzenie wynikowego artefaktu, np.: archiwum jar lub war,
  • test – wykonanie testów jednostkowych,

Raporty:
Maven umożliwia wygenerowanie raportów np:
  • maven-javadoc-plugin – tworzy dokumentacje javadoc,
  • maven-checkstyle-plugin – raport stylu kodu: obecność komentarzy, użycie zmiennych, importów...
  • maven-pmd-plugin – wykrywa fragmenty pisane metodą „kopiuj/wklej”, pomijane bloki kodu...
  • findbugs-maven-plugin – wykrywa typowe błędy statyczne,
  • maven-surefire-report-plugin – raport wykonania testów,

Sekcja raportów:
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0-beta-2</version>
<configuration>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.1</version>
<configuration>
<aggregate>true</aggregate>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.6</version>
</plugin>
</reportPlugins>
</configuration>
</plugin>
</plugins>
</build>
</project>

Brak komentarzy:

Prześlij komentarz