Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Maven II Jakub Wojtaszczyk (onufry@mimuw.edu.pl)onufry@mimuw.edu.pl Piotr Tabor (p.tabor@mimuw.edu.pl)
2
Plan ➢ Wstęp ➢ Porównamy Maven II i Anta ➢ Zainstalujemy Mavena II ➢ Stworzymy i obejrzymy „Pierwszy projekt” ➢ Omówimy mechanizmy wersje ➔ Wersje ➔ Repozytoria ➔ Fazy ➔ Stworzymy złożony projekt (JSF,EJB) ➔ Przejrzymy listę wtyczek ➔ Zapoponujemy zadania
3
Korzyści ● Automatyczne tworzenie projektu ● Automatyzacja powtarzajacych się zadań (budowanie, testowanie, publikowanie, itp.) ● Uniezależnić projekt od różnych środowisk developerskich (bez utraty korzyści ze spójnego środowiska) ● Odciążenie użytkownika od wszystkiego co da sie zautomatyzować ● Wprowadzić standardy organizacji projektu
4
Konwencje ● Układ katalogów projektu ● Jeden projekt – prawie zawsze jeden plik wynikowy (jar, war) – artefakt ● Nazewnictwo i konstrukcja plików wynikowych ● Jeden standard opisu projektu: POM – Project Object Model
5
A co z mrówkiem ? MAVEN ● Niezależny od systemu operacyjnego ● Język opisu projektu, zorientowny na dostarczenie spójnej informacji o cechach projektu – wtyczkom, które wykorzystają te mechanizmy na różnych sposób ● Deklaratywny (jak Prolog :) ) ANT ● Niezależny od systemu operacyjnego ● Język skryptowy z automatycznym sortowaniem topologicznym zadań ● Operacyjny (jak Bash)
6
Instalacja
7
Pierwszy projekt ● Tworzenie projektu ● Omówienie struktury katalogów ● Omówienie zawartości pliku POM ● Podłączenie projektu do Eclipsa ● Podłączenie projektu do NetBeana ● Podłączenie zależności ● Hello World ++ (ze stroną i dokumentacją)
8
Stabilne wersje artefaktów ● 1, 1.2.3, 1.2-beta ● Zapisywane są na repozytorium wersji stabilnych ● Nie powinny być modyfikowane po „udostępnieniu” - bo wersja powinna być jednoznaczna ● Mogą być zależnościami innych wersji stabilnych ● Powinny zależeć tylko od wersji stabilnych innych artefaktów
9
Rozwojowe wersje artefaktów (migawki) ● 1-SNAPSHOT, 1.2.3-SNAPSHOT, 1.2-beta-SNAPSHOT ● Każdy build to „wersja”: 1.2.3 - 20070315.100503-63 (numer) - (data).(godzina)-(id) ● Zapisywane są na repozytorium wersji rozwojowych ● Mogą być dowolnie modyfikowane ● Maven uaktualnia je na żądanie (domyślnie raz dziennie) ● Nie mogą być zależnościami innych wersji stabilnych ● Mogą zależeć od wersji stabilnych i rozwojowych innych artefaktów ● Wersją stabilną po 1.2.3-SNAPSHOT jest wersja 1.2.3
10
Repozytoria Maven'a ● Spójna organizacja plików ● Repozytoria światowe (http://ibiblio.org/maven2)http://ibiblio.org/maven2 ● Repozytoria firmowe ● Repozytoria lokalne u użytkownika ● Automatyczna synchronizacja (w dół i w górę) ● Archiva
11
Project Object Model ● ● 4.0.0 ●... ●......
12
Project Object Model 2.........
13
Project Object Model 3...
14
Jeszcze o zależnościach junit 4.0 jar test (compile, provided, runtime, test, system) ● Zależności są przechodnie
15
o fazach ● validate ● generate-sources ● process-sources ● generate-resources ● process-resources ● compilecompile the source code of the project. ● process-classes ● generate-test-sources ● process-test-sources ● generate-test-resources
16
o fazach 2 ● process-test-resources ● test-compile ● test ● prepare-package ● package ● pre-integration-test ● integration-test ● post-integration-testperform ● verify ● install ● deploy
17
O wtyczkach org.apache.maven.plugins maven-jar-plugin 2.0 test...
18
Bardziej skomplikowany przykład ● Projekty NIE są płaskie ● Aplikacja JSF – i działa (http://wiki.apache.org/myfaces/MyFaces_Archetypes_for_Maven) ● Aplikacja EJB – i mamy oba jary gotowe
19
Co jeszcze Maven potrafi (przykłady) ● Przygotowywanie dystrybucji aplikacji (mvn assembly:assembly) ● Przygotowywanie release (mvn release:*) – Przygotowanie dystrybucji – Podbicie numerów wersji – Kompilacja i testy w piaskownicy – Odłożenie wersji w drzewie SVN – Wygenerowanie changelogów – Zamknięcie bugów w odpowienim systemie
20
Co jeszcze Maven potrafi (przykłady 2) ● Profile ● generowanie źródeł (xdoclet 1,2) ● obfuscator ● transformacje XSLT, generowanie klas JAXB ● uruchamianie Ant'a (antrun) ● deployowanie programowane na różnych serwerach aplikacji (cargo) ● Generowanie klas do obsługi WebServiców Axis, Axis2 (Java2WSDL, WSDL2Java) ●... dużo więcej
21
Wiedzieć więcej... ● Darmowa książka (http://www.mergere.com/m2book_download.js p)http://www.mergere.com/m2book_download.js p ● Strona Mavena (http://maven.apache.org) ● Google (http://google.com) ;)http://google.com ● Autorzy prezentacji (w szczególności przez najbliższe kilka minut) PYTANIA ?
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.