gera zoltán [email protected] projekteszközök...
TRANSCRIPT
![Page 2: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/2.jpg)
2
Mi lesz ma?
● Alapvető motiváció: CI● Automatizálás, build rendszer● Problémák, skálázódás● Dependency, Repository● Megoldási kísérletek:
– Apache Ant
– Apache Maven
– Gradle
![Page 3: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/3.jpg)
3
Motiváció
● Cél: Termék / Szolgáltatás– Versenyképesség
– Bevétel
– Fenntarthatóság (A fejlesztés folyamata)
● Gyors reakció– Feedback Loop, Time to Market, Commit to Deploy
– CI = Continuous Integration
– CD = Continuous Delivery
![Page 4: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/4.jpg)
4
Automatizálás
● Munkafolyamat:– Fejlesztés
– Tesztelés
– Csomagolás
– Telepítés
● Build Automation, Build System → csak fejlesztők– CI munkamenet
– Automatizált tesztelés… telepítés
– Java világa
– … mindenki utálja!
![Page 5: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/5.jpg)
5
Ant
● Make– Karbantarthatóság, olvashatóság
– Portability● rm -rf kutya● rmdir /S /Q kutya● Helyette: <delete dir=”kutya”>
● Apache Ant (2000)– XML
– Platform független
– Java alapú plugin-ek → könnyen bővíthető
![Page 6: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/6.jpg)
6
Ant build.xml
ant [options] [target]
![Page 7: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/7.jpg)
7
Ant problémák
● XML olvasható?● Karbantarthatóság → Rosszul skálázódik● Új funkció → Új plugin● Imperatív● Library-k, framework-ök verziókezelőben?
![Page 8: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/8.jpg)
8
Multi-repository probléma
● Több saját repository● 3rd party library-k● Artifacts, verziózás● Artifact Repository● Transitive Dependency
Manager● Apache Ivy (2004)
![Page 9: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/9.jpg)
9
Maven
● Apache Maven (2004)● Nem imperatív
– Project Object Model
– Build Lifecycle (phase)
– Maven projekt struktúra
– Koordináták: (group, artifact, version)
● Függőség kezelés beépítve● Plugin rendszer (a plugin-ek is letöltődnek)● Nagyon jó, naprakész integráció
![Page 10: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/10.jpg)
10
Maven projekt + lifecycles● validate
● generate-sources
● process-sources
● generate-resources
● process-resources
● compile
● process-test-sources
● process-test-resources
● test-compile
● test
● package
● integration-test
● verify
● install
● deploy
![Page 11: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/11.jpg)
11
Maven pom.xmlmvn [options] [goals] [phases]mvn [plugin]:[goal]
![Page 12: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/12.jpg)
12
Maven problémák
● Letölti az internetet● Local cache● Local version (install)● Dependency Hell● Mi történik itt? Mi ez a sok library? Mi ez a
hibaüzenet?
![Page 13: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/13.jpg)
13
Gradle
● Gradle (2007) – Emerge from Build Hell● Groovy alapú, Plugin rendszer● DSL● Tasks: DAG a taszkok sorrendezésre
– Emulálja a Maven fázisait, ha kell
● Okos verziófeloldás● Nem csak Java
– Minden JVM
– CPP
– Android
● Dinamikusan fejlődik
![Page 14: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/14.jpg)
14
build.gradle
![Page 15: Gera Zoltán gerazo@caesar.elte.hu Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon](https://reader034.vdocuments.mx/reader034/viewer/2022052104/603ed9c10e250b4f03365393/html5/thumbnails/15.jpg)
15
Gradle problémák
● Hiányos integráció● Letölti az internetet● Dependency Hell● Local cache, local version● Komplex, nehezen átlátható működés és hibák