Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałNadzieja Janiszewska Został zmieniony 8 lat temu
1
InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: 01.08.2005 – 31.07.2007 Innowacyjne metody monitorowania projektów informatycznych: Część 2: Apache Maven Bartosz Walter, Marcin Werla {Bartek.Walter,Marcin.Werla}@man.poznan.pl Szkolenie finansowane ze środków Europejskiego Funduszu Społecznego (75%) i budżetu państwa (25%) w ramach Zintegrowanego Programu Operacyjnego Rozwoju Regionalnego
2
Apache Maven Motywacja – problemy programistów rozwijających Jakarta Turbine Kilka podprojektów Każdy projekt miał własne skrypty z własnymi nazwami zadań Każdy projekt miał podobne, ale nie identyczne zależności umieszczane w CVSie Programiści pracujący równocześnie w kilku projektach musieli pamiętać o specyfice każdego z nich
3
Apache Maven Cel – uproszczenie pracy programistów poprzez stworzenie narzędzia, które: Daje ustandaryzowany sposób pracy z projektem Jasną określa strukturę i zawartość projektu Umożliwia łatwą publikację różnych informacji na temat projektu Pozwala na współdzielenie zewnętrznych zależności między projektami
4
Apache Maven Efekt – powstało narzędzie, które: Daje uniwersalny interfejs do wykonywania najczęstszych zadań programisty Dostarcza informacje jakościowe na temat projektu Ułatwia wprowadzanie dobrych praktyk Pozwala (?) na łatwe dodawanie nowych możliwości
5
Apache Maven Funkcjonalność Mavena to „połączenie”: Ant, Jelly – skrypty o rozbudowanej funkcjonalności Ivy – zarządzanie zależnościami Forrest – generowanie i publikowanie strony Klient VCS – korzystanie z systemów VCS Wielu narzędzi do automatycznej inspekcji kodu, automatycznych testów, analizy historii projektu …
6
Apache Maven Maven to narzędzie: Open-source Napisane w Javie Ułatwiające - pracę programisty - pracę QA - zarządzanie konfiguracją projektu
7
Apache Maven Dla programisty: Dobrze zdefiniowana struktura dyskowa projektu Dobrze zdefiniowany proces budowania postaci wykonywalnej Ujednolicony interfejs, gotowe skrypty realizujące główne zadania Możliwość rozbudowania funkcjonalności z Jelly
8
Apache Maven Dla QA: Wsparcie dla praktyk automatycznego testowania - włączenie testowania w proces budowania postaci wykonywalnej Przygotowywanie raportów z wielu różnorodnych inspekcji i analiz kodu - statycznych - dynamicznych
9
Apache Maven Dla zarządzających (konfiguracją) projektu: Dostarcza ogólnych informacji o projekcie Dostarcza informacji na temat bieżących postępów w projekcie Ułatwia podział na podprojekty Wspomaga zarządzanie konfiguracją
10
Apache Maven Programista 1Programista 2 Serwer VCS commons-collections-1.0.jar, ver 1.1 commons-collections-2.1.jar, ver 1.1 commons-collections-3.0.jar, ver 1.1 Przykładowe zarządzanie zależnościami bez użycia Mavena
11
Apache Maven Programista 1Programista 2 Serwer VCS Przykładowe zarządzanie zależnościami bez użycia Mavena Repozytorium firmowe Repozytorium światowe project.xml, ver 1.1 project.xml, ver 1.2 project.xml, ver 1.3 commons-collections-1.0.jar + xml commons-collections-2.1.jar + xml ojdbc14.jar my-project-0.3-beta7.jar + xml http://ibiblio.org/maven http://ibiblio.org/maven2
12
Apache Maven Konfiguracja P roject O bject M odel (project.xml) - podstawowe informacje o projekcie (wersja, właściciel, opis,…) - informacje o zespole projektu, repozytorium, … - opis zewnętrznych zależności - opis procesu tworzenia postaci wykonywalnej - lista raportów
13
Apache Maven Konfiguracja project.properties - plik właściwy dla całego projektu - konfiguracja Mavena i pluginów build.properties - plik właściwy dla programisty - specyficzne ustawienia programisty, lokalne ścieżki, hasła itd.
14
Apache Maven src/ src/java/, src/xsl/, … src/test/ src/webapp/ xdocs/ xdocs/changes.xml xdocs/navigation.xml project.properties build.properties LICENSE.txt target/
15
Apache Maven Podział na podprojekty Automatyczne uwzględnianie powiązań między projektami Dziedziczenie ustawień w hierarchii plików konfiguracyjnych Możliwość wykonywania operacji na kilku projektach równocześnie Analiza porównawcza projektów
16
Ciągła integracja – w praktyce Maven – wady/zalety [+] Porządkuje wykorzystanie zewnętrznych zależności [+] Poprzez ujednolicenie ułatwia pracę z wieloma projektami [+] Najczęściej wykorzystywaną funkcjonalność ANTa można osiągnąć bez pisania skryptów [+] Łączy w sobie wiele ciekawych narzędzi [–] Permanentnie w wersji beta [–] Problemy z migracją między wersjami Mavena i pluginów
17
Apache Maven Maven 2 Poprawiona wydajność Zmieniona struktura katalogów Poprawiony układ repozytorium Przechodniość zależności Określanie zakresu zależności
18
Apache Maven Maven 2 Zdecydowanie większe ustrukturalizowanie informacji konfiguracyjnych Jednolity przebieg procesu uzyskania postaci wykonywalnej Zmiana sposobu dodawania nowej funkcjonalności Możliwość tworzenia wielojęzycznej strony projektu
19
Apache Maven Podsumowanie Wykorzystanie Mavena ułatwia codzienną pracę i podnoszenie jakości powstającego oprogramowania Początkowy nakład pracy może być dość duży, z czasem zmiany potrzebne są tylko przy aktualizacji Mavena lub pluginów Z produkcyjnym wykorzystaniem Mavena 2 być może warto się jeszcze wstrzymać
20
Apache Maven Odnośniki: Maven 1: http://maven.apache.org/maven-1.x/http://maven.apache.org/maven-1.x/ Maven 2: http://maven.apache.org/http://maven.apache.org/ Dodatkowe pluginy: http://maven- plugins.sourceforge.net/http://maven- plugins.sourceforge.net/ Maven Book: http://www.mavenbook.org/http://www.mavenbook.org/ Jelly: http://jakarta.apache.org/commons/jelly/http://jakarta.apache.org/commons/jelly/ Mavenide: http://mevenide.codehaus.org/http://mevenide.codehaus.org/
21
Apache Maven Pytania?
22
Apache Maven Dziękuję za uwagę!
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.