Prezentacja przygotowana na potrzeby przedmiotów: Sieciowe Systemy Baz Danych Biznesowe Aplikacje Rozproszone Wielowarstwowe Aplikacje Sieciowe

Podobne dokumenty
BUDOWANIE APLIKACJI. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

Wprowadzenie do narzędzia MAVEN

1. Wprowadzenie. 2. Instalacja i uruchomienie. 3. Projekt i POM

Załącznik 1 instrukcje instalacji

Narzędzia budowy aplikacji Java

Dokumentacja kompilacji źródeł aplikacji 1.0

Instrukcja instalacji

Załącznik 1 instrukcje instalacji

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

oprogramowania F-Secure

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Instalacja NOD32 Remote Administrator

Maven II. Jakub Wojtaszczyk Piotr Tabor

Silent setup SAS Enterprise Guide (v 3.x)

Sieciowa instalacja Sekafi 3 SQL

Platformy Technologiczne

Enterprise JavaBeans (EJB)

MentorGraphics ModelSim

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Uwierzytelnianie użytkowników sieci bezprzewodowej z wykorzystaniem serwera Radius (Windows 2008)

CVS system kontroli wersji

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Materiały dodatkowe. Raspberry Pi

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

git krótki przewodnik

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

SAS Institute TECHNICAL SUPPORT )

Instalacja i konfiguracja serwera SSH.

Instrukcja instalacji oprogramowania dla środowiska Windows

Programowanie niskopoziomowe

Zarządzanie Infrastrukturą IT. Jak ręcznie utworzyć instancję EAUDYTORINSTANCE na SQL Serwerze

ZAPOZNANIE SIĘ Z TWORZENIEM

SzukamNeta.pl Wicket, Maven, SVN, Hudson - tutorial

Instrukcja instalacji oprogramowania dla środowiska Linux

Backend Administratora

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

INSTRUKCJA OBSŁUGI DLA SIECI

Wprowadzenie do Doctrine ORM

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Mirror Tool.

Wprowadzenie do SAS. Wprowadzenie. Historia SAS. Struktura SAS 8. Interfejs: SAS Explorer. Interfejs. Część I: Łagodny wstęp do SAS Rafał Latkowski

Konfiguracja serwera OPC/DDE KEPSServerEX oraz środowiska Wonderware InTouch jako klienta DDE do wymiany danych

Fiery Remote Scan. Łączenie z serwerami Fiery servers. Łączenie z serwerem Fiery server przy pierwszym użyciu

Artifactory Power Pack Pro w procesie wytwarzania oprogramowania. Artifactory Power Pack Plugins Artifactory License Control

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Użycie pakietów instalacyjnych.msi w oprogramowaniu WYWIAD Plus

ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4

Platformy Technologiczne

Zaawansowane aplikacje internetowe - laboratorium

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

Problemy techniczne SQL Server

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Wykaz zmian w programie SysLoger

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Metryki. Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz

Problemy techniczne SQL Server

Instrukcja instalacji oprogramowania dla środowiska Windows

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla System Mac OS

Instalacja i konfiguracja serwera IIS z FTP

Przypisywanie bibliotek w architekturze SAS

Galileo v10 pierwszy program

Pomoc dla systemu WordPress

Windows Server Active Directory

Windows W celu dostępu do i konfiguracji firewall idź do Panelu sterowania -> System i zabezpieczenia -> Zapora systemu Windows.

Hermes EFK Dokumentacja użytkownika. v

Instrukcja konfiguracji funkcji skanowania

12. Wirtualne sieci prywatne (VPN)

Uruchomienie nowego kontekstu aplikacji

Wirtualizacja aplikacji: spakuj i wdrażaj aplikacje szybko i łatwo za pomocą ZENworks Application Virtualization

Instrukcja instalacji oprogramowania dla środowiska Linux

INSTALACJA LICENCJI SIECIOWEJ NET HASP Wersja 8.32

Uproszczona instalacja SAS Forecast Server 4.1

Dokumentacja instalacyjna i konfiguracyjna Aplikacja ADR. Wersja dokumentu 1.0. Strona 1/9

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Wersjonowanie baz danych podczas developmentu. Liquibase. Piotr Pelczar.

Informatyka I : Tworzenie projektu

Konfiguracja kolejności interfejsów sieciowych w Windows 10 dla oprogramowania Wonderware

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Linux

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

Cover sheet. WinCC (TIA Portal) FAQ Listopad 2012

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Załącznik 2 utworzenie projektu

VPN Host-LAN IPSec X.509 z wykorzystaniem DrayTek Smart VPN Client

Instrukcja użytkownika. Aplikacja dla Comarch Optima

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

QuickStart TechBase S.A. Technical contact - support.techbase.eu 1/8

Biocentrum Ochota infrastruktura informatyczna dla rozwoju strategicznych kierunków biologii i medycyny POIG /09

Instrukcja użytkownika. Aplikacja dla WF-Mag

Instrukcja instalacji wtyczki Przelewy24

Transkrypt:

MAVEN 2 Prezentacja przygotowana na potrzeby przedmiotów: Sieciowe Systemy Baz Danych Biznesowe Aplikacje Rozproszone Wielowarstwowe Aplikacje Sieciowe 1

Podstawowe informacje o konfiguracji środowiska i Maven WSTĘP 2

Literatura podstawowa Maven: The Definitive Guide http://www.sonatype.com/books/maven-book/reference/public-book.html Developing with Eclipse and Maven http://www.sonatype.com/m2eclipse/documentation/downloadbook?file=books/m2eclipse-book.pdf Opisy wtyczek http://maven.apache.org 3

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 4

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) 5

Maven w Eclipse IDE Pobierz plik archiwum z Eclipse. Dla przykładowej instalacji 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.5 http://download.eclipse.org/tools/ajdt/35/update Zainstaluj Subclipse 1.6 http://subclipse.tigris.org/update_1.6.x Zainstaluj GEF dla Eclipse 3.5 http://download.eclipse.org/tools/gef/updates/releases/ Zainstaluj m2eclipse http://m2eclipse.sonatype.org/update/ 6

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 7

Trzy podstawowe cykle: clean default site Maven: cykle 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 8

Maven: fazy Przykładowe fazy: mvn compile mvn test-compile Do każdej fazy mogą być przywiązane cele wtyczek FAZA compile CEL compiler:compile CEL inny:cel 9

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 mavencompiler-plugin) mvn compiler:testcompile PLUGIN CEL CEL CEL 10

Maven domyślny cykl dla jar/war/ejb/ejb3/rar/par process-resources resources:resources test surefire:test compile compiler:compile package jar:jar process-test-resources resources:testresources install install:install test:compile compiler:testcompile deploy deploy:deploy 11

TODO Modyfikacja cyklu, przypinanie celów do faz 12

Podstawowe informacje o sposobie tworzenia projektów MAVEN TWORZENIE PROJEKTU 13

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) 14

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ć. 15

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 16

Docelowa struktura projektów SUPERPOM Projekt nadrzędny (POM) Podprojekt (JAR) Podprojekt (WAR) Podprojekt EJB (JAR) Podprojekt (EAR) 17

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-tothe-pom.html 18

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> 19

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 20

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) 21

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 22

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 23

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> 24

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 w formie spakowanej (jar i war) EAR może zawierać 0..1 moduł WEB (war), 0..N modułów EJB (jar) i 0..N innych bibliotek JAR 25

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 26

Konfiguracja maven-ejb-plugin Ustawić wartość generateclient na true Wskazać w <clientincludes> co ma zostać umieszczone w kliencie <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> 27

Konfiguracja projektu WEB W projekcie aplikacji WEB należy dodać zależność względem wcześ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 pliku konfiguracyjnym nadrzędnego projektu maven (pom) parametru standardowego project.groupid 28

Parametryzacja projektów maven PARAMETRY 29

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 30

Parametry standardowe: project http://maven.apache.org/ref/2.2.0/mavenmodel/maven.html Najczęściej wykorzystywane wartości project.* artifactid groupid version build.* directory sourcedirectory 31

Parametry standardowe: settings http://maven.apache.org/ref/2.2.0/mavensettings/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 32

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 33

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.* 34

Parametry użytkownika Można definiować własne parametry Wykorzystywane podczas filtrowaniu konfiguracji projektu i przy 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> 35

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 36

<resources> <resource> Filtrowanie: przykład filtrowania źródeł <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> 37

Artefaktu nie ma w domu Jeżeli masz np. bibliotekę w postaci jar, ale nie ma jej w jakimkolwiek repozytorium (wewnętrznym, zewnętrznym) Zainstaluj bibliotekę w lokalnym repozytorium mvn -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 38

Budowa dowlonego typu archiwum ASSEMBLY 39

TODO Biznesowe Aplikacje Rozproszone: Maven2 40 40

Konfiguracja maven-site-plugin. Informacje o projekcie i raporty GENEROWANIE STRONY PROJEKTOWEJ 41

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 42

Generowanie strony projektowej (Site) W przypadku projektu wielomodułowego, strona będzie generowana z osobna dla każdego projektu. Raporty można zintegrować ustawiając wartość aggregate na true. Agregacja następuje dopiero po wykonaniu celu site:deploy Dla celu site:deploy należy skonfigurować distributionmanagement, tzn miejsce w którym zostanie umieszczona strona projektu. Może być to także lokalizacja na serwerze plików czy też www (transport np.: scp). <distributionmanagement> <site> <id>sjo</id> <url>file://d://javaprog//docs</url> </site> <distributionmanagement> 43

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> 44

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> 45

Informacje o projekcie: project-team Listę członków zespołu projektowego bądź też organizacji należy umieścić w sekcji <developers>. Można też stworzyć dodatkową listę w sekcji <contributors> dla osób bądź jednostek przekazujących coś na rzecz projektu. Jeżeli generowane są raporty z scm (np. changelog) to id powinno być zgodne z loginem w tym systemie. <developers> <developer> <id>szsk</id> <name>szsk user</name> <email>test@gmail.com</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> 46

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> 47

Informacje o projekcie: scm Wyświetlane są podstawowe informacje o systemie scm użytym w projekcie, oraz jak z niego korzystać. Wymaga podania 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 dla scm. Ten url wykorzystywany jest przy operacjach zapisu connection jest tylko dla operacji oczytu url jest wykorzystywany w wielu raportach do podlinkowania plików źródłowych (o ile w ogóle system scm udostępnia pliki np. po http) 48

Informacje o projekcie: scm Skonfigurowanie sekcji scm pozwala z poziomu Maven wykonywać operacje w systemie scm np. commit, update itd. Wiele innych wtyczek bazuje na scm Więcej informacji, patrz: http://maven.apache.org/scm/ http://maven.apache.org/scm/plugins/index.html Praca z repozytorium 49

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ę mavenjavadoc-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 50

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> 51

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 52

SCM Software Configuration Management PRACA Z REPOZYTORIUM 53

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) 54

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 55

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. 56

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 57

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, że maven został prawidłowo skonfigurowany do pracy z repozytorium 58

Wykorzystanie maven-release-plugin BUDOWA PLANOWANEGO WYDANIA APLIKACJI 59

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 60

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 61

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 nowej lokalizacji wydania w repozytorium, np. w systemie svn katalog tags Wykonanie testów Zatwierdzenie zamian w repozytorium (tags) Podniesienie numerów wersji z jednoczesnym dodaniem SNAPSHOT Zatwierdzenie zmian w repozytorium dla wersji rozwojowej np. w systemie svn katalog trunk 62

Przygotowanie wydania: efekt działania Kolejne wersje finalne projektu Wersja rozwojowa ZapisySJO-0.0.5-SNAPSHOT 63

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ć) 64

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) 65

ToDo Dodanie dependency do jar (plugin) Assembly Profile Biznesowe Aplikacje Rozproszone: Maven2 66 66