Build Management

Transkrypt

Build Management
Build Management
Na przykładzie Maven’a
Szymon Kuźniak
Spis treści

Wprowadzenie





Fazy tworzenia oprogramowania
Definicja problemu
Zarządzanie tworzeniem oprogramowania
Maven, …
Podsumowanie
02.04.08
Szymon Kuźniak
2
Fazy tworzenia
oprogramowania






Project setup
Zestawienie środowiska programistycznego
Testowanie i programowanie
Nightly builds
Tagowanie kolejnych wersji
Releases
02.04.08
Szymon Kuźniak
3
Definicja problemu

Proces budowania oprogramowania jest:




Powtarzalny
Częsty
Narażony na błędy
Proces budowania oprogramowania powinien
być:



02.04.08
Zautomatyzowany
Skryptowalny
Wywoływany jednym poleceniem
Szymon Kuźniak
4
Project setup


Bardzo powtarzalny proces
Często czasochłonny




02.04.08
Struktura katalogów
Program ‘Hello world’
Testy
Wymagane biblioteki
Szymon Kuźniak
5
Środowisko programistyczne




Project setup tylko raz…
…, a środowisko musi zestawić każdy
Instalowanie bibliotek
Integracja z IDE
02.04.08
Szymon Kuźniak
6
Testowanie i programowanie


Dodawanie nowych bibliotek
Uruchamianie testów



Podgląd raportów




Testy jednostkowe
Testy integracyjne
Wyniki testów
Pokrycie kodu testami
‘Bad smells’
Zatwierdzanie kolejnych wersji
02.04.08
Szymon Kuźniak
7
Nightly builds



Automatyzacja
Raportowanie
Uaktualnianie numerów wersji



02.04.08
Major
Minor
Build
Szymon Kuźniak
8
Tagowanie wersji


Zautomatyzowany proces tworzenia
kolejnych wersji
Uaktualnianie numerów wersji





Major
Minor
Build
Integracja z repozytorium
Powiadomienia
02.04.08
Szymon Kuźniak
9
Wydawanie finalnych wersji

Załączanie zewnętrznych plików






Readme
Dokumentacja
Niestandardowe biblioteki
Change log
Tworzenie raportów
Uaktualnianie wersji



02.04.08
Major
Minor
Build
Szymon Kuźniak
10
Zarządzanie wytwarzaniem
oprogramowania - podsumowanie

Czego oczekiwać po build managerze ?








02.04.08
Zautomatyzowana inicjalizacja projektu
Zautomatyzowane budowanie aplikacji
Zautomatyzowane testowanie
Integracja z repozytorium
Integracja z innymi aplikacjami zarządzającymi
Raporty
Zarządzanie zależnościami
Tworzenie wersji oprogramowania
Szymon Kuźniak
11
Maven - charakterystyka






A maven (also mavin or mayvin) is a trusted
expert in a particular field, who seeks to pass
knowledge on to others (Wikipedia)
Jackarta Turbine
Ant
Standardowy sposób budowania aplikacji
Oparty o mechanizm wtyczek
Easy to learn, hard to master
02.04.08
Szymon Kuźniak
12
Charakterystyka w praktyce

POM (Project Object Model)




Informacje o projekcie
Informacje o wtyczkach
Informacje o zależnościach
Ustandaryzowana struktura katalogów
02.04.08
Szymon Kuźniak
13
Cele Mavena





Ułatwiać proces budowania oprogramowania
Zapewnić jednolity proces budowania
Udostępnić informacje o jakości projektu
Wprowadzić dobre praktyki w procesie
tworzenia oprogramowania
Ułatwić wprowadzanie nowych
funkcjonalności
02.04.08
Szymon Kuźniak
14
Project setup

Mechanizm archetypów



Wiele gotowych archetypów
Możliwość definiowania własnych archetypów
Ułatwione dołączanie do projektu
02.04.08
Szymon Kuźniak
15
Dependency management




Centralne repozytorium bibliotek
Lokalne repozytorium bibliotek
Automatyczne ściąganie
Wyszukiwanie (??)
02.04.08
Szymon Kuźniak
16
Podprojekty



Zarządzanie projektami modularnymi
Jeden nadrzędny pom
Każdy projekt ma swój pom
02.04.08
Szymon Kuźniak
17
Konfiguracja






Łatwy w konfiguracji
Convention over Configuration
Oparty o mechanizm wtyczek
Proste dodawanie nowych wtyczek
Możliwość tworzenia własnych wtyczek
Możliwość tworzenia własnych artefaktów
02.04.08
Szymon Kuźniak
18
Integracja



Integracja z antem
Integracja z CVS i SVN
Integracja z serwerami ciągłej integracji
02.04.08
Szymon Kuźniak
19
Raportowanie

Wiele wtyczek do tworzenia raportów






Javadoc
Lista zależności
Stylecheck
Pokrycie testami
Rezultat testów
Strony projektu
02.04.08
Szymon Kuźniak
20
Maven - wady


Java
Brak możliwości wyszukiwania bibliotek


Google
Brak kompletnej integracji z repozytorium
02.04.08
Szymon Kuźniak
21
Podsumowanie



Zarządzanie procesem budowania aplikacji
jest potrzebne
Wiele rzeczy można zrobić szybciej i
łatwiej…
… nawet jeżeli na początku zajmie to trochę
więcej czasu
02.04.08
Szymon Kuźniak
22
Dziękuję za uwagę
Pytania
02.04.08
Szymon Kuźniak
23