Sestavení produktu, postup sestavení a jeho varianty, nástroje pro sestavení.
Z Na státnice zvesela!
[editovat] Sestavení produktu
- Aktivity podporující transformaci zdrojových prvků konfigurace na odvozené
- Cílem je vytvořit systematický a automatizovaný postup
- Vlastnosti sestavení
- jedinečnost a identifikovatelnost
- úplnost - kompletní systém, obsahuje všechny komponenty
- konzistence - správné verze komponent
- opakovatelnost - možnost opakovat build daného sestavení kdykoliv v budoucnu
- dodržuje pravidla vývojové linie
- Typy sestavení
- Podle použitých částí
- čistý
- úplný
- inkeremntální
- Podle účelu
- soukromý
- integrační
- release(build)
[editovat] Postup sestavení
- Soukromé sestavení
- ověření konzistentnosti konfigurace po mnou provedených změnách před commitem
- build skript podobný oficiálnímu, sestavení v soukromém prostoru
- Integrační sestavení
- ověření sestavitelnosti celého produktu
- build prováděn centrálně automatizovaným a opakovatelným procesem
- Release build
- Významný integrační build dodávaný zákazníkovi
- Pomocné techniky
- Kusovník - kompletní seznam prvků sestavení - reprodukovatelnost a schopnost sestavení kdekolik a kdykoliv
- Archivace prostředí - správa verzí objektů, které nejsou
v uložišti (nástroje, platformy, hardware, ...), důležité pro dlouho
žíjící software, uplatnění zde najdou virtuální stroje, kdy se archivuje
jen obraz virtuálního stroje v požadované konfiguraci
- Make -- skript popisující závislosti, pravidla, cíle a příkazy. Soubor makefile, program make.
- Rozšířen hlavně na unixových OS
- existují různé multiplatformní varianty (cmake, qmake, ...)
- Ant -- rozšířený nástroj podobný make určený pro Javu. Elementy project, target, task. Soubor build.xml
- Maven
- pokročilý nástroj pro sestavování a řízení projektu
- Java platforma
- oproti Antu zaměřen na konvenci (zdrojáky na předem určeném místě apod.) namísto konfigurace
- ke kompilaci využívá Ant, ale navíc zvládá stahování potřebných knihoven k sestavení aplikace
- Existují další nástroje pro různé programovací jazyky a OS.