life and death of apache maven (hu)

21
AZ APACHE MAVEN ÉLETE ÉS HALÁLA Cservenák Tamás

Upload: tamas-cservenak

Post on 25-Jun-2015

67 views

Category:

Software


4 download

DESCRIPTION

Life and Death of Apache Maven, mostly in Hungarian

TRANSCRIPT

Page 1: Life and Death of Apache Maven (HU)

AZ APACHE MAVEN ÉLETE ÉS HALÁLA

!

Cservenák Tamás

Page 2: Life and Death of Apache Maven (HU)

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

Page 3: Life and Death of Apache Maven (HU)

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”,

Page 4: Life and Death of Apache Maven (HU)

SOFTWARE DELIVERY CHAIN

Repository

IDE / CLI SCM CI

Build

AgentAgent

Agent

Central

Provisioner

Page 5: Life and Death of Apache Maven (HU)

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

Page 6: Life and Death of Apache Maven (HU)

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.

Page 7: Life and Death of Apache Maven (HU)

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

Page 8: Life and Death of Apache Maven (HU)

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!

Page 9: Life and Death of Apache Maven (HU)

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!

Page 10: Life and Death of Apache Maven (HU)

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!

Page 11: Life and Death of Apache Maven (HU)

EXISTING PARALLELISATION NEW!

Page 12: Life and Death of Apache Maven (HU)

AGRESSIVE PARALLELISATION NEW!

Page 13: Life and Death of Apache Maven (HU)

AGRESSIVE PARALLELISATION + MAVEN BUILD PROFILER NEW!

Page 14: Life and Death of Apache Maven (HU)

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

Page 15: Life and Death of Apache Maven (HU)

GENERATIONS & WORKSPACES NEW!

Generation 100 Generation 101 Generation 102 Generation 103

SCM rev100:branchX

SCM rev101:branchX

SCM rev102:branchX

SCM rev103:brancX

Page 16: Life and Death of Apache Maven (HU)

GENERATIONS & WORKSPACES NEW!

Repository

IDE / CLI SCM CI

Build

AgentAgent

Agent

Provisioner

Felhasználás

Előállítás

Page 17: Life and Death of Apache Maven (HU)

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!

Page 18: Life and Death of Apache Maven (HU)

GENERATIONS & WORKSPACES

“Delta Protocol” — download és deploy, inkrementális

Atomic deploy

Hardlinking, sparse

NEW!

Page 19: Life and Death of Apache Maven (HU)

MINDEN MÁS

Polyglot Maven: DSLs in Ruby, Groovy, Scala, YAML and Atom

Maven Shell: “does all as m2eclipse from a shell”

NEW!

Page 20: Life and Death of Apache Maven (HU)

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!

Page 21: Life and Death of Apache Maven (HU)

–Jason Van Zyl

“...because Maven just isn't going to die.”