16
1 Ant, Maven, Gradle Gera Zoltán [email protected] Projekteszközök 2016.04.11

Gera Zoltán [email protected] Projekteszközök 2016.04gsd.web.elte.hu/lectures/tools/slides/AntMavenGradle.pdf · – Fenntarthatóság (A fejlesztés folyamata) ... Nagyon

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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

1

Ant, Maven, Gradle

Gera Zoltá[email protected]

Projekteszközök2016.04.11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Page 16: 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

16

Kérdések és válaszok

Gera Zoltán

[email protected]