prezentacja przygotowana na potrzeby...

66
Politechnika Łódzka Zakład Sieci Komputerowych, Instytut Informatyki PŁ 1 Prezentacja przygotowana na potrzeby przedmiotów: Sieciowe Systemy Baz Danych Biznesowe Aplikacje Rozproszone Wielowarstwowe Aplikacje Sieciowe MAVEN 2

Upload: others

Post on 10-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

1

Prezentacja przygotowana na potrzeby przedmiotów:Sieciowe Systemy Baz DanychBiznesowe Aplikacje RozproszoneWielowarstwowe Aplikacje Sieciowe

MAVEN 2

Page 2: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

2

WSTĘPPodstawowe informacje o konfiguracji środowiska i Maven

Page 3: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

3

Literatura podstawowa

• Maven: The Definitive Guidehttp://www.sonatype.com/books/maven-book/reference/public-book.html

• Developing with Eclipse and Mavenhttp://www.sonatype.com/m2eclipse/documentation/download-

book?file=books/m2eclipse-book.pdf

• Opisy wtyczekhttp://maven.apache.org

Page 4: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

4

Konfiguracja środowiska programistycznego

• Pobierz Maven2 ze strony http://maven.apache.org

• Zainstaluj Maven2 w maven_home

• Dodaj ścieżkę maven_home/bin do PATH (uwaga

Linux/Windows)

• Ustal lokalizację JDK w zmiennej środowiskowej

JAVA_HOME

Page 5: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

5

Maven w Netbeans IDE

• Zainstaluj plugin Maven w NetBeans (Tools → Plugins)

• Sprawdź czy w Tools → Options → Miscellaneous

znajduje się zakładka Maven

• Na zakładce Maven podać lokalizację maven_home (o ile

NetBeans sam nie wykrył Maven-a po PATH)

Page 6: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

6

Maven w Eclipse IDE

• Pobierz plik archiwum z Eclipse. Dla przykładowejinstalacji jako baza posłużyła wersja Eclipse 3.5 JavaEE(Galileo)

• Zainstaluj Mylyn dla Eclipse 3.5:http://download.eclipse.org/tools/mylyn/update/e3.5

• Zainstaluj AspectJ dla Eclipse 3.5http://download.eclipse.org/tools/ajdt/35/update

• Zainstaluj Subclipse 1.6http://subclipse.tigris.org/update_1.6.x

• Zainstaluj GEF dla Eclipse 3.5http://download.eclipse.org/tools/gef/updates/releases/

• Zainstaluj m2eclipsehttp://m2eclipse.sonatype.org/update/

Page 7: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

7

Maven w Eclipse IDE

• W konfiguracji Eclipse jako masznę JAVA podać tę z

pakietu JDK (eclipse.ini), np.:-vm

e:\Programs\Java\jdk1.6.0_14\bin\javaw.exe

• Dodać ścieżkę w Window → Preferences → Maven →

Installations do katalogu w którym zainstalowano maven2

• Uwaga! Warto wyłączyć automatyczne budowanie

projektu w Eclipse

Page 8: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

8

Maven: cykle

• Trzy podstawowe cykle:

– clean

– default

– site

• Więcej informacji (google: maven phases)http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

• Cykl „default” ma inaczej przywiązane cele do faz

w zależności od wartości <packaging> → patrz pom.xml

Page 9: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

9

Maven: fazy

• Przykładowe fazy:

– mvn compile

– mvn test-compile

• Do każdej fazy mogą być przywiązane cele wtyczek

CELcompiler:compile

FAZAcompile

CELinny:cel

Page 10: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

10

Maven: wtyczki (ang. plugins) i cele (ang. goals)

• maven-compiler-plugin, po każdym poleceniu sprawdź

zawartość katalogu target

– mvn clean (faza clean)

– mvn compiler:compile (cel compile wtyczki maven-

compiler-plugin)

– mvn compiler:testCompile

CELCEL CEL

PLUGIN

Page 11: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

11

Maven – domyślny cykl dla jar/war/ejb/ejb3/rar/par

process-resources

resources:resources

compile

compiler:compile

process-test-resources

resources:testResources

test:compile

compiler:testCompile

test

surefire:test

package

jar:jar

install

install:install

deploy

deploy:deploy

Page 12: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

12

Modyfikacja cyklu, przypinanie celów do faz

• TODO

Page 13: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

13

MAVEN – TWORZENIE PROJEKTUPodstawowe informacje o sposobie tworzenia projektów

Page 14: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

14

Uwagi wstępne

• Projekty można tworzyć z poziomu:

– Środowiska programistycznego

– Linii poleceń i samego maven-a

• Projekty tworzy się na podstawie tzw. archetypów np.:

– Dla aplikacji bazującej na spring

– Dla modułu EJB

– Dla aplikacji WEB itd.

• Środowisko programistyczne tak naprawdę wykorzystuje

te archetypy i maven-a do utworzenia określonego typu

projektu (sprawdź komunikaty)

Page 15: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

15

Projekt nadrzędny (POM)

• Utworzyć nowy projekt Maven

– NB: File → New Project (Ctrl+Shift+N)

– Eclipse: File → New → Project (Alt+Shift+N)

• Wybrać Maven Project

• Wybrać archetyp (można przeszukiwać listę)

– groupId: org.codehouse.mojo.archetypes

– artifactId: pom-root

• Uwaga: NB na liście wyświetla nazwy archetypów a nie

ich Id, np.: POM Root Archetype. Część archetypów jest

wyróżniona i nie trzeba ich wyszukiwać.

Page 16: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

16

Identyfikacja artefaktu w Maven

• Każdy artefakt ma swój unikalny identyfikator

– groupId: nazwa grupy artefaktów

– artifactId: nazwa artefaktu

– version: wersja artefaktu

• Wersja finalna np.: 1.0.0

• Wersja robocza np.:1.0.0-SNAPSHOT

• Dodatkowe informacje o projekcie – nie są konieczne

– name: nazwa artefaktu/projektu Maven

– url: np. lokalizacja strony projektowej

• Więcej informacji o pom:

http://maven.apache.org/pom.html

Page 17: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

17

Docelowa struktura projektów

Projekt nadrzędny (POM)

Podprojekt (EAR)

Podprojekt EJB (JAR)

Podprojekt (WAR)

Podprojekt (JAR)

SUPERPOM

Page 18: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

18

SUPERPOM

• Jest to podstawowa konfiguracja dostarczana przez

konkretną dystrybucję maven

• Kolejne wydanie maven może używać nowszych wtyczek

(o wyższych numerach wersji) niż to z którego aktualnie

korzystasz.

• Jeżeli coś działało w wersji, której do tej pory używałeś, to

nie znaczy że będzie działało w wersji nowszej. Wniosek:

zawsze podawaj numery wersji wtyczek w pom.xml

• Więcej informacji:

– http://maven.apache.org/guides/introduction/introduction-to-

the-pom.html

Page 19: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

19

Projekt nadrzędny (POM)

• Do podania są następujące wartości:

– lokalizacja projektu na dysku

– grupId

– artifactId (nazwa projektu w IDE)

– wersja

• Plik pom.xml powinien mieć następującą postać:<modelVersion>4.0.0</modelVersion>

<groupId>zsk.samples</groupId>

<artifactId>NazwaProjektu</artifactId>

<packaging>pom</packaging>

<version>1.0-SNAPSHOT</version>

<name>NazwaProjektu Multi Project</name>

<url>http://maven.apache.org</url>

Page 20: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

20

Projekt typu JEE 5 Enterprise (EAR)

• Projekt typu EAR składa (ang. assembly) dostępne

moduły (artefakty) w archiwum EAR

• File → New Project (Ctrl+Shift+N)

• Wybrać Maven Project i Next

• Rozwinąć listę: Archetypes from Remote Maven

Repositories (można wpisywać nazwę archetypu – Quick

Search)

• Wybrać z listy: JEE 5 EAR Archetype i Next

• Podać: nazwę projektu, lokalizację, grupę, wersję i

zatwierdzić Finish

Page 21: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

21

Projektu typu UTILITY (JAR)

• File → New Project (Ctrl+Shift+N)

• Wybrać Maven Project i Next

• Wybrać Maven Quickstart Archetype i Next

• Podać: nazwę projektu, lokalizację, grupę, wersję i

zatwierdzić Finish

• Zmienić wersję Java na wymaganą, np.:1.5 (Project →

Properties → Sources)

Page 22: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

22

Projekt JEE 5 EJB (JAR)

• File → New Project (Ctrl+Shift+N)

• Wybrać Maven Project i Next

• Rozwinąć listę Archetypes from Remote Maven

Repositories

• Wybrać z listy JEE 5 ejb jar archetype (można wpisywać

nazwę archetypu – Quick Search) i Next

• Podać nazwę projektu, lokalizację, grupę, wersję i

zatwierdzić Finish

Page 23: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

23

Projekt JEE 5 Web (WAR)

• File → New Project (Ctrl+Shift+N)

• Wybrać Maven Project i Next

• Rozwinąć listę Archetypes from Remote Maven

Repositories

• Wybrać z listy JEE 5 web application archetype (można

wpisywać nazwę archetypu – Quick Search) i Next

• Podać nazwę projektu, lokalizację, grupę i wersję i

zatwierdzić Finish

• Z Project → Properties → Frameworks dodać framework

web którego będziemy używać w projekcie

Page 24: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

24

Konfiguracja projektu EAR

• Dodaj jako zależności moduł ejb i moduł web<dependency>

<groupId>pl.szsk.was</groupId>

<artifactId>WebModule</artifactId>

<version>1.0-SNAPSHOT</version>

<type>war</type>

</dependency>

<dependency>

<groupId>pl.szsk.was</groupId>

<artifactId>EjbModule</artifactId>

<version>1.0-SNAPSHOT</version>

<type>ejb</type>

</dependency>

• Zwróć uwagę na <type>

Page 25: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

25

Konfiguracja maven-ear-plugin

• Dodaj do pliku pom wtyczkę maven-ear-plugin

• W konfiguracji wtyczki należy dopisać:<modules>

<webModule>

<groupId>pl.szsk.was</groupId>

<artifactId>WebModule</artifactId>

</webModule>

<ejbModule>

<groupId>pl.szsk.was</groupId>

<artifactId>EjbModule</artifactId>

</ejbModule>

/modules>

• Powyższe moduły zostaną załączone do archiwum EAR wformie spakowanej (jar i war)

• EAR może zawierać 0..1 moduł WEB (war), 0..N modułówEJB (jar) i 0..N innych bibliotek JAR

Page 26: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

26

Budowa aplikacji EJB3/3.1

• W przypadku gdy chcemy aby moduły EJB i WEB nie były

umieszczane razem w formie jednej aplikacji EAR, to

pojawia się problem związany z zależnościami.

• Aplikacja WEB musi zawierać część kodu aplikacji EJB, a

dokładniej specyfikację interfejsów komponentów EJB z

których będzie korzystać.

• Projekt Maven dla EJB musi więc, oprócz zbudowania

aplikacji EJB, wygenerować także archiwum jar

zawierające te interfejsy.

• Konfigurację maven-ejb-plugin dla takiego przypadku

przedstawiono na następnym slajdzie

Page 27: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

27

Konfiguracja maven-ejb-plugin

• Ustawić wartość generateClient na true

• Wskazać w <clientIncludes> co ma zostać umieszczone wkliencie

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-ejb-plugin</artifactId>

<configuration>

<generateClient>true</generateClient>

<clientIncludes>

<!--Dołącz do klienta tylko "zdalne interfejsy"-->

<clientInclude>

pl/zsk/sos/ejb/endpoint/*Remote.class

</clientInclude>

</clientIncludes>

<ejbVersion>3.0</ejbVersion>

</configuration>

</plugin>

Page 28: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

28

Konfiguracja projektu WEB

• W projekcie aplikacji WEB należy dodać zależność względemwcześniej wygenerowanego klienta aplikacji EJB – wartość<type> ustawiona na ejb-client

<dependency>

<groupId>${project.groupId}</groupId>

<artifactId>EjbModule</artifactId>

<version>${EjbModule.ver}</version>

<type>ejb-client</type>

</dependency>

• Maven wie, że nie należy dołączać archiwum jar z aplikacjąEJB tylko archiwum jar klienta tej aplikacji.

• Zwróć uwagę na możliwość zastosowania:

– parametru EjbModule.ver, który zostały zdefiniowany w plikukonfiguracyjnym nadrzędnego projektu maven (pom)

– parametru standardowego project.groupId

Page 29: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

29

PARAMETRYParametryzacja projektów maven

Page 30: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

30

Parametry standardowe

• Odwołanie do parametru ma postać ${nazwa_parametru}

• Standardowo dostępne wartości:

– project.* - wartości z Maven POM np:

– settings.* - ustawienia z settings.xml

– env.* - zmienne środowiskowe

– java.lang.System

• UWAGA: Podane w prezentacji adresy url mogą się

zmienić z uwagi na zmianę obowiązującej wersji maven.

Bazowy adres to:

– http://maven.apache.org/ref

Page 32: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

32

Parametry standardowe: settings

• http://maven.apache.org/ref/2.2.0/maven-

settings/settings.html

• Generalnie bardzo rzadko wykorzystuje się w

ustawieniach projektu wartości z settings.xml

• Najczęściej wykorzystywane wartości z settings.*

– localRepository

– offline

• Za to bardzo wygodnie jest tam wpisać dane

uwierzytelniające w sekcji <servers> dla

wykorzystywanych serwerów podanych w sekcji

<distributionManagement> pliku pom.xml

Page 33: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

33

Parametry standardowe: env

• Najczęściej wykorzystywane wartości env.*

– path

– home

– java_home

• Jeżeli to tylko możliwe, powinno się używać wartości

dostępnych poprzez java.lang.System

Page 34: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

34

Parametry standardowe: java.lang.System

• Wartości bardzo często wykorzystywane

• Najbardziej popularne to:

– java.version

– java.home

– user.home

– user.dir

– line.separator

– file.separator

– os.*

Page 35: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

35

Parametry użytkownika

• Można definiować własne parametry

• Wykorzystywane podczas konfiguracji projektu i przyfiltrowaniu

• Przykład definicji:<properties>

<EJBModule.ver>1.0-SNAPSHOT</EJBModule.ver>

<WEBModule.ver>1.0-SNAPSHOT</WEBModule.ver>

</properties>

• Przykład użycia:<dependency>

<groupId>pl.szsk.was</groupId>

<artifactId>WebModule</artifactId>

<version>${WEBModule.ver}</version>

<type>war</type>

</dependency>

Page 36: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

36

Filtrowanie

• Proces podstawiania wartości parametrów w plikach

• W pliku musi znajdować się odwołanie do parametru w postaci${nazwa_parametru}

• Pozwala na zmianę treści plików konfiguracyjnych czy teżsamych plików źródłowych aplikacji np:

– Konfiguracja połączenia do bazy danych

– Adres WebService w adnotacji

• Proces filtrowania musi zostać jawnie uaktywniony.SUPERPOM ma domyślne ustawienia jak poniżej:

<resources>

<resource>src/main/resources</resource>

<filtering>true</filtering>

</resources>

• UWAGA – czasami nie wszystko powinno być filtrowane

Page 37: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

37

Filtrowanie: przykład filtrowania źródeł

<resources>

<resource>

<directory>src/main/java</directory>

<filtering>true</filtering>

<!-- domyślnie zasoby są kopiowane do target/classes -->

<targetPath>../filtered-sources</targetPath>

</resource>

<resource>

<!—trzeba podać też katalog z normalnymi plikami zasobów,

inaczej ich nie skopiuje-->

<directory>src/main/resources</directory>

</resource>

</resources>

Page 38: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

38

Artefaktu nie ma w „domu”

• Jeżeli masz np. bibliotekę w postaci jar, ale nie ma jej wjakimkolwiek repozytorium (wewnętrznym, zewnętrznym)

• Zainstaluj bibliotekę w lokalnym repozytoriummvn -cpu install:install-file -DgroupId=nazwa_grupy -

DartifactId=nazwa_artefaktu -Dversion=numer_wersji -

packaging=jar -Dfile=scieżka_do_pliku

• -cpu <=> --check_plugin_updates

• Zainstaluj bibliotekę w repozytorium maven

– Skonfiguruj w pom.xml lokalizację repozytorium maven(<distributionManagement>)

– Skonfiguruj w settings.xml dostęp do repozytorium maven

– zamiast install:instal-file wpisz cel deploy:deploy-file

– podaj w poleceniu id repozytorium

Page 39: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

39

ASSEMBLYBudowa dowlonego typu archiwum

Page 40: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

40

• TODO

Biznesowe Aplikacje Rozproszone: Maven2 40

Page 41: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

41

GENEROWANIE STRONY PROJEKTOWEJKonfiguracja maven-site-plugin. Informacje o projekcie i raporty

Page 42: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

42

Generowanie strony projektowej (Site)

• Sekcja <reporting >: konfiguracja raportów generowanych na potrzeby projektu<reporting>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-project-info-reports-plugin</artifactId>

<version>2.1.2</version>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-javadoc-plugin</artifactId>

<version>2.6</version>

<configuration>

<aggregate>true</aggregate>

</configuration>

</plugin>

</plugins>

</reporting>

• Więcej informacji, patrz– http://maven.apache.org/plugins/maven-site-plugin/

• UWAGA! Z oczywistych powodów, podane wersje wtyczek mogą nie byćnajnowsze

Page 43: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

43

Generowanie strony projektowej (Site)

• W przypadku projektu wielomodułowego, strona będziegenerowana z osobna dla każdego projektu.

• Raporty można zintegrować ustawiając wartość aggregate natrue. Agregacja następuje dopiero po wykonaniu celusite:deploy

• Dla celu site:deploy należy skonfigurowaćdistributionManagement, tzn miejsce w którym zostanieumieszczona strona projektu. Może być to także lokalizacja naserwerze plików czy też www (transport np.: scp).

<distributionManagement>

<site>

<id>SJO</id>

<url>file://d://javaProg//docs</url>

</site>

<distributionManagement>

Page 44: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

44

Konfiguracja serwerów: przykład

• Plik pom.xml<distributionManagement>

<site>

<id>SJO</id>

<name>SJO Site</name>

<url>scp://nazwa_serwera/sciezka_do_np_public_html/</url>

</site>

</distributionManagement>

• Plik settings.xml<servers>

<server>

<id>SJO</id>

<username>uzytkownik</username>

<password>haslo</password>

<filePermissions>664</filePermissions>

<directoryPermissions>775</directoryPermissions>

<configuration></configuration>

</server>

</servers>

Page 45: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

45

Informacje o projekcie: przykład

• Informacje brane są z plików pom.xml.<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-project-info-reports-plugin</artifactId>

<version>2.1.2</version>

<reportSets>

<reportSet>

<reports>

<report>index</report>

<report>project-team</report>

<report>dependencies</report>

<report>dependency-convergence</report>

<report>dependency-management</report>

<report>plugin-management</report>

<report>plugins</report>

<report>summary</report>

<report>scm</report>

</reports>

</reportSet>

</reportSets>

</plugin>

Page 46: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

46

Informacje o projekcie: project-team

• Listę członków zespołu projektowego bądź też organizacji należyumieścić w sekcji <developers>.

• Można też stworzyć dodatkową listę w sekcji <contributors> dlaosób bądź jednostek przekazujących coś na rzecz projektu.

• Jeżeli generowane są raporty z scm (np. changelog) to id powinnobyć zgodne z loginem w tym systemie.

<developers>

<developer>

<id>szsk</id>

<name>SZSK user</name>

<email>[email protected]</email>

<organization>Technical University of Lodz</organization>

<organizationUrl>http://www.p.lodz.pl</organizationUrl>

<timezone>CET</timezone>

<roles>

<role>kierownik projektu</role>

<role>pracownik</role>

</roles>

</developer>

</developers>

Page 47: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

47

Informacje o projekcie: summary

• Dane podstawowe o projekcie<name>ZapisySJO</name>

<description>Opis projektu</description>

<url>http://strona_domowa_projektu</url>

• Warto wpisać dane jednostki organizacyjnej. Informacja ta

jest umieszczana dodatkowo w wielu raportach np.:

javadoc<organization>

<name>Department of Computer Networks, Technical University

of Lodz</name>

<url>http://www.zsk.p.lodz.pl</url>

</organization>

Page 48: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

48

Informacje o projekcie: scm

• Wyświetlane są podstawowe informacje o systemie scmużytym w projekcie, oraz jak z niego korzystać. Wymagapodania stosownych url w sekcji scm:

<scm>

<connection>scm:svn:svn://adres_repozytorium</connection>

<url>http://adres_www_repozytorium</url>

</scm>

• Można też w tej sekcji ustalić developerConnection dlascm. Ten url wykorzystywany jest przy operacjach zapisu

• connection jest tylko dla operacji oczytu

• url jest wykorzystywany w wielu raportach dopodlinkowania plików źródłowych (o ile w ogóle systemscm udostępnia pliki np. po http)

Page 50: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

50

Raporty na stronie projektowej

• W sekcji <reporting> można dodać wiele wtyczek

generujących pożyteczne raporty. We wcześniej

przedstawionym przykładzie znajdował się maven-

javadoc-plugin

• W większości z nich należy zwrócić uwagę na sposób

kodowania źródeł i sposób kodowania generowanego

raportu. Domyślnie przyjmowane jest ISO-8859-1 i java w

wersji 1.4

• Do ustalenia tych wartości warto zdefiniować w pliku pom

parametry np. <source.enc> czy też <source.ver>, jak w

przykładzie na kolejnym slajdzie. Parametry te powinny

być także użyte np. w konfiguracji maven-compiler-plugin

Page 51: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

51

Raporty na stronie projektowej: przykład<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-javadoc-plugin</artifactId>

<version>2.6</version>

<configuration>

<encoding>${source.enc}</encoding>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-changelog-plugin</artifactId>

<version>2.1</version>

<configuration>

<outpuEncoding>${source.enc}</outpuEncoding>

<connectionType>connection</connectionType>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-jxr-plugin</artifactId>

<version>2.1</version>

<configuration>

<linkJavadoc>true</linkJavadoc>

<inputEncoding>${source.enc}</inputEncoding>

<outputEncoding>${source.enc}</outputEncoding>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-pmd-plugin</artifactId>

<version>2.4</version>

<configuration>

<linkXref>true</linkXref>

<sourceEncoding>${source.enc}</sourceEncoding>

<minimumTokens>100</minimumTokens>

<targetJdk>${source.ver}</targetJdk>

</configuration>

</plugin>

Page 52: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

52

Problemy przy generowaniu strony projektowej

• Z uwagi na złożoność generowania strony projektowej,

może pojawić się wyjątek OutOfMemoryError. Należy

wtedy zmienić ustawienia maszyny wirtualnej dla maven

set MAVEN_OPTS=-Xmx1024m -Xms512m -XX:PermSize=256m

-XX:MaxPermSize=512m

mvn site

Page 53: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

53

PRACA Z REPOZYTORIUMSCM – Software Configuration Management

Page 54: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

54

Konfiguracja klienta svn po ssh (Windows)

• Założenia

– Dostęp do repozytorium poprzez svn+ssh

– Uwierzytelnianie z wykorzystaniem klucza prywatnego

• Potrzebne są następujące programy

– klient subversion (np. Collabnet)

– putty (do konfiguracji ssh)

– plink (do utworzenia połączenia ssh)

– puttygen (gdy chcemy generować klucze)

Page 55: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

55

Konfiguracja klienta svn po ssh (Windows)

• Wygodnie jest do PATH dodać ścieżkę do katalogu z

zainstalowanymi programami putty, puttygen i plink (w tym

przypadku nawet bardzo wskazane) oraz svn

• W profilu użytkownika w Application Data\Subversion

(%APPDATA%\Subversion) znajduje się plik

konfiguracyjny config. Ustawienia można także

wprowadzić z poziomu rejestru – patrz plik README

• Domyślnie svn poszukuje ssh do nawiązania połączenia

svn+ssh. Zmieniamy to na plink.exe w sekcji [tunnels][tunnels]

ssh = plink.exe

Page 56: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

56

Konfiguracja klienta svn po ssh (Windows) - problemy

• Zmiana nazwy plink na ssh nie jest najlepszym

pomysłem. svn próbuje np. wywołać plink z opcją -q.

Niestety plink tej opcji nie ma zaimplementowanej.

Page 57: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

57

Konfiguracja połączenia svn po ssh (Windows)

• Uruchomić putty

• Skonfigurować sesję

– Session:

• hostname: uzytkownik@serwer

• connection type: SSH

• session name: nazwa_sesji

– Connection/SSH

• Wybrać wersję protokołu – najlepiej v2

– Connection/SSH/Auth

• Wskazać lokalizację pliku z kluczem prywatnym

• Zapisać sesję z poziomu Session

Page 58: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

58

Test i konfiguracja maven

• Wykonać dowolne polecenie svn na repozytorium np.:svn ci svn+ssh://nazwa_sesji/lokalizacja_repo

• Konfiguracja maven:<scm>

<connection>scm:svn:svn+ssh://nazwa_sesji/lokalizacja_repo</

connection>

<developerConnection>scm:svn:svn+ssh://nazwa_sesji/lokalizac

ja_repo</developerConnection>

<url>http://nazwa_serwera_web_svn/lokalizacja_repo</url>

</scm>

• Wykonać polecenie:mvn scm:checkin -Dmessage="test"

• Jeżeli wszystko przebiegło pomyślnie oznacza to, żemaven został prawidłowo skonfigurowany do pracy zrepozytorium

Page 59: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

59

BUDOWA PLANOWANEGO WYDANIA APLIKACJI

Wykorzystanie maven-release-plugin

Page 60: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

60

Konfiguracja wtyczki maven-release-plugin

• Przez „wydanie” rozumiemy utworzenie planowanej

finalnej wersji projektu

• Jeżeli skonfigurowano projekt zgodnie z wcześniejszymi

slajdami to jest on praktycznie gotów do użycia tej wtyczki

• Wtyczka nie wymaga wtedy dodatkowej konfiguracji,

aczkolwiek można to zrobić. Po szczegóły patrz:

http://maven.apache.org/plugins/maven-release-plugin/

<plugin>

<artifactId>maven-release-plugin</artifactId>

<version>2.0-beta-9</version>

</plugin>

Biznesowe Aplikacje Rozproszone: Maven2 60

Page 61: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

61

Cele wtyczki

• release:clean – usunięcie informacji (dodatkowych plików)

po wykonaniu release:prepare

• release:prepare – przygotowanie wydania w SCM.

• release:rollback – wycofanie zmian z ostatniego wydania

• release:perform – wykonanie wydania z systemu SCM

• release:stage – wykonanie wydania do innego

repozytorium albo katalogu

• release:branch – utworzenie rozgałęzienia aktualnego

projektu z aktualizacją numerów wersji

Page 62: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

62

Przygotowanie wydania, cel: prepare

• Sprawdzenie zgodności źródeł z repozytorium (<scm>)

• Zmiana numerów wersji w plikach pom.xml (częśćinteraktywna, możliwy jest tryb wsadowy)

• Zmiana informacji w <scm> tak aby odpowiadała nowejlokalizacji wydania w repozytorium, np. w systemie svnkatalog tags

• Wykonanie testów

• Zatwierdzenie zamian w repozytorium (tags)

• Podniesienie numerów wersji z jednoczesnym dodaniemSNAPSHOT

• Zatwierdzenie zmian w repozytorium dla wersjirozwojowej np. w systemie svn katalog trunk

Page 63: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

63

Przygotowanie wydania: efekt działania

Kolejne wersje finalne projektu

Wersja rozwojowa ZapisySJO-0.0.5-SNAPSHOT

Page 64: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

64

Inne przydatne cele projektowe

• Po wykonaniu celu prepare dobrze jest wykonać clean,

celem usunięcia tymczasowych kopii plików pom.xml i

informacji o przygotowanym ostatnim wydaniu

• W przypadku problemów z dokończeniem przygotowania

wydania, gdy wykonane zostały zmiany w repozytorium

można wycofać te zmiany przy pomocy celu rollback

• Można jednak po dokonaniu poprawek w konfiguracji

kontynuować przygotowanie wydania przy pomocy celu

prepare (takie jest domyślne ustawienie dla wtyczki, które

oczywiście można zmienić)

Page 65: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

65

Wydanie projektu, cel: perform

• Pobranie ostatniego wydania projektu

• Wykonanie celów:

– deploy – umieszczenie artefaktów projektowych w

repozytorium maven

– site-deploy – umieszczenie strony projektowej na

dedykowanym serwerze (patrz Generowanie strony

projektowej)

Page 66: Prezentacja przygotowana na potrzeby przedmiotówzskl.zsk.p.lodz.pl/~mkwapisz/wspolne/Maven2-2.0-SNAPSHOT.pdf · 2009-10-11 · Prezentacja przygotowana na potrzeby przedmiotów:

Politechnika ŁódzkaZakład Sieci Komputerowych, Instytut Informatyki PŁ

66

ToDo

● Dodanie dependency do jar (plugin)

● Assembly

● Profile

Biznesowe Aplikacje Rozproszone: Maven2 66