Maven II. Jakub Wojtaszczyk Piotr Tabor

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

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

Narzędzia budowy aplikacji Java

Wprowadzenie do narzędzia MAVEN

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

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

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

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

Instrukcja instalacji

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

Dokumentacja kompilacji źródeł aplikacji 1.0

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

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

Open Source w służbie developerom

Platformy Technologiczne

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

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

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

Wersjonowanie baz danych podczas developmentu. Liquibase. Piotr Pelczar.

Continuous Integration

Programowanie niskopoziomowe

Załącznik 1 instrukcje instalacji

Java Podstawy. Michał Bereta

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Instrukcja laboratoryjna cz.3

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

Program szkolenia: Continuous Integration i Git

Dokumentacja instalatora środowiska obsługi kart mikroprocesorowych w wersji Spis treści

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Continuous Integration z ClickOnce

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Continuous Integration i jakość kodu. Michał Prajs

Zaawansowane programowanie w (pakiecie) Delphi

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

Programowanie komponentowe 5

Hibernate mapowanie baz danych

Symfonia <-> SaldeoSMART Informacje wdrożeniowe (wewnętrzne)

Java a średni (?) projekt informatyczny

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

Zapewnij sukces swym projektom

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

FLEX ( ) Przygotowanie środowiska developerskiego Hello world w MXML Hello world w ActionScript

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23)

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

Platformy Technologiczne

Instalowanie VHOPE i plików biblioteki VHOPE

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Dokumentacja instalatora środowiska obsługi kart mikroprocesorowych w wersji Spis treści

The current software tools for the JEE platform

Hurtownie danych - przegląd technologii

Zaawansowane aplikacje internetowe - laboratorium

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

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Pla$orma edukacyjna czy to wystarczy? Przygotował: Artur Dyro, Prezes Learnetic S.A.

GIT. System Kontroli wersji GIT. Rafał Kalinowski

Wprowadzenie do programowania aplikacji mobilnych

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

HELIOS pomoc społeczna

SAS Institute TECHNICAL SUPPORT )

Szkolenie autoryzowane. MS SharePoint Online Power User. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

KATEGORIA OBSZAR WIEDZY NR ZADANIA Podstawowe informacje i czynności

WICKET VS. DJANGO. Leszek Gawron vs. Michał Leszczyński

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Tworzenie oprogramowania

GIT. Rozproszony system kontroli wersji

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Przegląd narzędzi do automatycznego testowania aplikacji internetowych. Jan Płoszczyca SKISR 2006

WPROWADZENIE DO INFORMATYKI

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

Standaryzacja danych w projekcie MICORE

INICJATYWA STUDENCKA. Gdańsk,

Konfiguracja współpracy urządzeń mobilnych (bonowników).

Instrukcja instalacji odtwarzacza RealPlayer dla systemu Windows.

Win Admin Replikator Instrukcja Obsługi

Załącznik 1 instrukcje instalacji

Instalacja i opis podstawowych funkcji programu Dev-C++

MDW. (Moduł Dystrybucji Wysyłek) (Moduł Magento) v Strona 1 z 11

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

Platformy Technologiczne

Zacznijmy więc pracę z repozytorium. Pierwsza konieczna rzecz do rozpoczęcia pracy z repozytorium, to zalogowanie się w serwisie:

ibok Internetowe Biuro Obsługi Klienta

The Binder Consulting

Testowanie aplikacji JAVA Laboratorium 8 (Tabele w scenariuszach JBehave. Projekt z podstaw BDD oraz atrap.)

Unreal Engine 4 - Samsung Gear VR

SZKOLENIE TWORZENIE SYSTEMÓW

Optymalizacja programów Open Source. Profilery wysokiego poziomu część 2. Krzysztof Lichota

Kraków, 2 kwietnia 2004 r.

Obiekty Badawcze długoterminowe przechowywanie eksperymentów naukowych. Piotr Hołubowicz, Raúl Palma Poznańskie Centrum Superkomputerowo-Sieciowe

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Win Admin Replikator Instrukcja Obsługi

Win Admin Replikator Instrukcja Obsługi

Wykaz zmian w programie WinAdmin Replikator

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Transkrypt:

Maven II Jakub Wojtaszczyk (onufry@mimuw.edu.pl) Piotr Tabor (p.tabor@mimuw.edu.pl)

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

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

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

A co z mrówkiem? ANT Niezależny od systemu operacyjnego Język skryptowy z automatycznym sortowaniem topologicznym zadań Operacyjny (jak Bash) 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 :) )

Instalacja

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

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

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

Repozytoria Maven'a Spójna organizacja plików Repozytoria światowe (http://ibiblio.org/maven2) Repozytoria firmowe Repozytoria lokalne u użytkownika Automatyczna synchronizacja (w dół i w górę) Archiva

Project Object Model <project> <modelversion>4.0.0</modelversion> <groupid>...</groupid> <artifactid>...</artifactid> <version>...</version> <packaging>...</packaging> <parent>...</parent> <dependencies>...</dependencies> <dependencymanagement>...</dependencymanagement> <modules>...</modules> <properties>...</properties> <build>...</build>...

Project Object Model 2 <name>...</name> <description>...</description> <url>...</url> <inceptionyear>...</inceptionyear> <licenses>...</licenses> <organization>...</organization> <developers>...</developers> <contributors>...</contributors>...

Project Object Model 3 <issuemanagement>...</issuemanagement> <cimanagement>...</cimanagement> <mailinglists>...</mailinglists> <scm>...</scm> <prerequisites>...</prerequisites> <repositories>...</repositories> <pluginrepositories>...</pluginrepositories> <distributionmanagement>...</distributionmanagement> <profiles>...</profiles> </project>

Jeszcze o zależnościach <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.0</version> <type>jar</type> <scope>test</scope> (compile, provided, runtime, test, system) </dependency> Zależności są przechodnie

o fazach validate generate-sources process-sources generate-resources process-resources compile compile the source code of the project. process-classes generate-test-sources process-test-sources generate-test-resources

o fazach 2 process-test-resources test-compile test prepare-package package pre-integration-test integration-test post-integration-test perform verify install deploy

O wtyczkach <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-jar-plugin</artifactid> <version>2.0</version> <configuration> <classifier>test</classifier> </configuration> <dependencies>...</dependencies> <executions>...</executions> </plugin> </plugins>

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

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

Profile Co jeszcze Maven potrafi (przykłady 2) 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

Wiedzieć więcej... Darmowa książka (http://www.mergere.com/m2book_download.jsp) Strona Mavena (http://maven.apache.org) Google (http://google.com) ;) Autorzy prezentacji (w szczególności przez najbliższe kilka minut) PYTANIA?