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