Life and Death of Apache Maven (HU)

Post on 25-Jun-2015

67 views 4 download

description

Life and Death of Apache Maven, mostly in Hungarian

Transcript of Life and Death of Apache Maven (HU)

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