Upload
tamas-cservenak
View
67
Download
4
Embed Size (px)
DESCRIPTION
Life and Death of Apache Maven, mostly in Hungarian
Citation preview
AZ APACHE MAVEN ÉLETE ÉS HALÁLA
!
Cservenák Tamás
MI AZ APACHE MAVEN?
Build tool — Mint az Ant?
Dependency management tool — Hasonló mint Ivy?
Site management tool — Csak egy plugin a sok közül
MI VALÓJÁBAN AZ APACHE MAVEN?
Szoftverfejlesztési Modell — sztenderd projekt layout, build lifecycle és a függőségek tárolásása és megszerzése
Fejlesztési és infrastrukturális minták — mivel modell alapú, koherencia a folyamatok és tooling szintjén vs ad-hoc, organikus
Csapatszintű együttműködés és produktivitás — a fejlesztő ne az infrastruktúrával foglalkozzon, produktivitás vs “hekkelés”,
SOFTWARE DELIVERY CHAIN
Repository
IDE / CLI SCM CI
Build
AgentAgent
Agent
Central
Provisioner
SOFTWARE DELIVERY CHAIN
A fejlesztési infrastruktúrám merőben más? — NEM
A fejlesztési infrastruktúra része a piaci versenyelőnyömnek? — NEM
A MAVEN CÉLKITŰZÉSEI
Standards and Best Practices for SDCs — pushes best practice down to the level of the SDC
Provide a shared language for SDC management — tasks of initializing and maintaining SDCs aren’t performed from scratch over and over
Create healthy and robust build infrastructures — periods of high change, releases, deadlines.
A MAVEN VILÁGA
Project Object Model descriptor / Inheritance
Standard Project Layout / Convention over Configuration
Dependency Management and Mediation
Modularity / Best Practices / Reuse
Binary Artifact Repository
Standard Software Delivery Chain / Infrastructure
AZ ÚJÍTÁSOK
Build futási idő
Incremental build
Modern hardver adottságainak kihasználása (multicore)
Remote repository roundtrips
Continuous Delivery
Generations and Workspaces
Atomic deploys
Branched development
NEW!
INCREMENTAL BUILD
Az Eclipse m2e már tudta ezt, most ez kerül vissza a Maven-be
BuildContext: tudatni a keretrendszerrel mit olvasunk és mit írunk
A keretrendszer megfejti, bogy mit kell újra build-elni
Sok meglévo Mojo-k módosítása
Eclipse JDT incremental compiler integráció, compiler plugin
NEW!
PARALLELISATION
Maven Core refaktorálva, Builder interfész
Új lehetőségek tárházát nyitja meg, az eddigiekhez képest
Meglévő stratégiák: “Single-threaded”, “Multi-threaded” (és “Weave”)
Új stratégiák, kombinálva a Maven Profiler-rel
NEW!
EXISTING PARALLELISATION NEW!
AGRESSIVE PARALLELISATION NEW!
AGRESSIVE PARALLELISATION + MAVEN BUILD PROFILER NEW!
GENERATIONS & WORKSPACES
“A generation is a binary representation of your SCM at given point in time on a given branch”
Félúton a RELEASE és a SNAPSHOT között (de inkább release)
Körbejárja az egész SDC-t
A Continuous Delivery alapja
Inkrementális
NEW!
REV:BRANCH
GENERATIONS & WORKSPACES NEW!
Generation 100 Generation 101 Generation 102 Generation 103
SCM rev100:branchX
SCM rev101:branchX
SCM rev102:branchX
SCM rev103:brancX
GENERATIONS & WORKSPACES NEW!
Repository
IDE / CLI SCM CI
Build
AgentAgent
Agent
Provisioner
Felhasználás
Előállítás
GENERATIONS & WORKSPACES
Fejlesztői oldalon
A Workspace hasonló mint az Eclipse Workspace
Ugrás generációrol generációra (tehát rev és branch)
Projekt részhalmazán dolgozni (forrás vs binary)
NEW!
GENERATIONS & WORKSPACES
“Delta Protocol” — download és deploy, inkrementális
Atomic deploy
Hardlinking, sparse
NEW!
MINDEN MÁS
Polyglot Maven: DSLs in Ruby, Groovy, Scala, YAML and Atom
Maven Shell: “does all as m2eclipse from a shell”
NEW!
AETHER ÚJDONSÁGOK
Local repository — caches published and holds non-published artifacts
Safe concurrent access (multiple processes RW)
Osztott local repository (local vs remote, snapshot vs release)
Remote repository — source of the published artifacts
E-Tag HTTP fejléc használata (HTTP kérések száma feleződik)
Aether Transport: okHttp, HttpClient 4.x
MRM barát HTTP implementáció: 202 Accepted
NEW!
–Jason Van Zyl
“...because Maven just isn't going to die.”