SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
1
Apache Maven 3.x
Will it live up to its promises?
By Arnaud Héritier
2
About me
•  Committer since 2004
and member of the PMC
•  Coauthor of « Apache
Maven » published by
Pearson (in French)
•  Software Factory
Manager
eXo platform
» In charge of tools and
methods
•  Contact me :
» http://aheritier.net
» Twitter : @aheritier
» Skype : aheritier
3
Definition
•  Apache Maven is a software project
management and comprehension tool.
•  Based on the concept of a project object
model (POM)
» Maven can manage a project's build, binaries,
reporting and documentation from a central piece
of information.
•  Apache Maven is standards/conventions
driven
» How many of you are doing JEE and related
developments ?
4
History
•  Initiated in 2001 by Jason Van Zyl in Alexandria,
an Apache Jakarta project,
•  Moved to Turbine few months after,
•  Became a Top Level Project in 2003.
•  Maven 2.0 released in September 2005
•  Maven 3.0 released in October 2010
» 3.0.1 soon (RC1 staged)
5
Choose your way of thinking
Conventions approach Scripting approach
6
Competitors
•  Ant + Ivy, Easy Ant, Gant, Gradle, Buildr…
•  Script oriented
» You can do what you want !
•  Reuse many of Maven conventions (directories
layout, …) and services (repositories) but without
enforcing them
•  The risk for them : Not being able to evolve due to
the too high level of customization proposed to
the user.
» We tried on Maven 1 and it died because of that. It was
impossible to create a set of tests to cover all usages.
» It’s like providing a framework without public API L
7
With scripts oriented builds
You can have
(if you have good skills)
But often you have
(moreover after years …)
8
With Maven
We dream to deliver
(Maven 3.x)
But yesterday we too often had
(Maven 2.x)
9
BACKWARD COMPATIBILITY
Apache Maven 3.x
10
Backward compatibility - Criticisms
•  Migration from Maven 1 to Maven 2 was
impossible. Everything had to be re-done.
•  Updates between 2.x versions and also
between 2.0.x weren’t often without side
effects.
11
Backward compatibility
•  Near to 700 integration tests
•  Tested for months on a large set of OSS
projects
•  7 alphas + 3 betas versions
•  It’s a revolution under the hood but an
evolution for end users
12
Maven 3.0.x ITs
674
13
PERFORMANCES
Apache Maven 3.x
14
Performances - Criticisms
•  Maven is slow
•  It spends its time to download the world
•  Whereas everybody has multicore CPUs, it
doesn’t allow to process modules builds in
parallel
15
Performances
•  A set of benchmark tools was developed to
measure Maven performances (IO, CPU,
Memory, Network …)
•  Startup and execution times are reduced
» Java 5 optimizations
» Code cleanup and improvements
•  Reduced Memory footprint
•  Artifacts Resolution Caching
» .lastUpdated files in your local repo
» Enforce checks with –U option
16
Performances – Parallel builds
•  Parallel builds
» An execution plan is predefined at startup to
define which modules could be built in //
» Requires to have up to date plugins to avoid dead
locks and some others issues
» Launch a build with 2 threads
•  mvn –T 2 install
» Launch a build with 2 threads per CPU core
•  mvn –T 2C install
17
Performances – mvnsh
•  Performances optimizations
» Intelligent cache system (artifacts resolution,
project descriptors …)
» No need to restart a JVM for each build
•  Cross platform « unix like » shell
» Alias, environment settings …
» Color highlighting
18
Performances – mvnsh
•  All in one
» Includes Maven 3.x
» Allows to have color highlighting with “standard”
Maven 3.x
•  Developed and freely distributed by Sonatype
19
Performances – mvnsh
20
EXTENSIBILITY
Apache Maven 3.x
21
Extensibility - Criticisms
•  It is difficult and time consuming to extend
maven (write plugins)
» Many unknown technologies like Plexus for IOC
•  It is difficult/impossible to reuse maven
plugins
» Its impossible to extend plugins/mojo and
lifecycles
22
Extensibility
•  New APIs to improve abstraction of
underneath implementation
» Aether : to manage artifacts and repositories
•  Plugin classloader partitioning
•  Embeddable
•  IOC replaced by Guice
» For now (3.0) a wrapper is hiding the change
» You don’t yet use Guice directly (from plugins for
example)
23
ROBUSNESS
Apache Maven 3.x
24
Robusness - Criticisms
•  Builds aren’t predictable
•  Errors are difficult to diagnose
25
Robusness - Validations
•  Many more validations in POMs (warnings or
errors)
» Missing plugins versions
» Duplicated dependencies in a POM
» Incoherent inheritance (wrong relative path or
parent not in the upper directory)
•  Improved error messages with links to wiki
pages for more detailed information
26
Robusness – Artifacts management
•  Parent POMs prefer to resolve from
repositories
» Version less parent will be available in a future
maven 3.x release by using the relativePath
element
•  Profiles usage consolidation
» No more profiles.xml (incompatible with future
polyglot feature)
27
Robusness – Artifacts management
•  No more support for legacy repository layout
for Maven 1.0
•  SNAPSHOTs are always deployed with
timestamps
28
Robusness – Plugins management
•  Plugin version is by default RELEASE and no
more SNAPSHOT
» Affects command-line invocation
•  Plugins cannot use versions LATEST or
RELEASE
» Affects command-line invocation and POM
•  Plugins are resolved only from
<pluginRepository> entries
29
Robusness – Site plugin
•  Site plugin is now completely extracted from
Maven core
» It has its own lifecycle
» reporting section in POM becomes useless
(moved in plugin configuration)
30
POM
Apache Maven 3.x
31
Criticisms
•  XML, we don’t like it
•  POM is too verbose
•  POM v4 didn’t evolve last 5 years
» When will you add new common attributes to
ease plugins configuration (encoding …)
» New feature like global exclusions
32
POM
•  No change in POM syntax for Maven 3.0
•  Changes will occur in 3.x versions
» New model with a new version
» Only new things
» Generation / deployment of 4.0.0 current POM to
keep backward compatibility with old maven
versions
•  Mixins to allow to import POM fragments
33
POM - Polyglot
•  Developed and freely distributed by Sonatype
•  Extended version of Maven 3.0 using its new
embedding and extensibility capabilities
•  Allow translation (read/write) from/to various
syntaxes
» Yaml
» Scala
» Groovy
•  Allow macros and freeform scripting
34
QUESTIONS ?
Apache Maven
35
Licence et copyrights
•  Photos and logos belong to their respective
authors/owners
•  Various ideas are coming from the excellent
presentation done by Matthew McCullough :
» http://www.slideshare.net/matthewmccullough/
maven-30-at-oredev
36
Licence et copyrights
•  Content under Creative Commons 3.0
» Attribution — You must attribute the work in the manner
specified by the author or licensor (but not in any way that suggests
that they endorse you or your use of the work).
» Noncommercial — You may not use this work for commercial
purposes.
» Share Alike — If you alter, transform, or build upon this work,
you may distribute the resulting work only under the same or similar
license to this one.
•  http://creativecommons.org/licenses/by-nc-sa/3.0/us/
TO GO FURTHER …
Apache Maven
38
COMMUNITY
Apache Maven
39
Users Mailing List
•  Blue :
» Number of subscribers
•  Red :
» Number of messages
per day
•  users@maven.apache.or
g
» Traffic statistics cover a
total of 1697 days.
» Current subscribers: 1861
» Current digest
subscribers:47
» Total posts (1697 days):
80633
» Mean posts per day:
47.52
•  http://pulse.apache.org/
40
Apache Maven Web Site
41
Dowloads
Per month downloads
http://people.apache.org/~vgritsenko/stats/
projects/maven.html
42
The team
•  60 committers,
•  More than 30 active in 2009,
•  Several organizations like Sonatype, deliver
resources and professional support,
•  A community less isolated : more interactions
with Eclipse, Jetty,
43
Commit Statistics
44
DOCUMENTATIONS
Apache Maven
45
Some links
•  The main web site :
» http://maven.apache.org
•  Project’s team wiki :
» http://docs.codehaus.org/display/MAVEN
•  Project’s users wiki :
» http://docs.codehaus.org/display/MAVENUSER
46
Books
•  Nicolas De loof
Arnaud Héritier
» Published by Pearson
» Collection Référence
» Based on our own
experiences with
Maven.
» From beginners to
experts.
» In French only
47
Books
•  Sonatype / O’Reilly :
» The Definitive Guide
» http://
www.sonatype.com/
books
» Free download
» Available in several
languages
48
Books
•  Exist Global
» Better builds with
Maven
» http://
www.maestrodev.com
/better-build-maven
» Free download
49
SUPPORT
Apache Maven
50
Support
•  Mailing lists
» http://maven.apache.org/mail-lists.html
•  IRC
» irc.codehaus.org - #maven
•  Forums
» http://www.developpez.net/ forum maven
» In French
•  Dedicated support
» Sonatype and many others companies

Más contenido relacionado

La actualidad más candente

Java Builds with Maven and Ant
Java Builds with Maven and AntJava Builds with Maven and Ant
Java Builds with Maven and AntDavid Noble
 
Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Johan Mynhardt
 
Log management (elk) for spring boot application
Log management (elk) for spring boot applicationLog management (elk) for spring boot application
Log management (elk) for spring boot applicationVadym Lotar
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 featuresAngel Ruiz
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with MavenSid Anand
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to MavenVadym Lotar
 
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Sam Brannen
 
Introduction in Apache Maven2
Introduction in Apache Maven2Introduction in Apache Maven2
Introduction in Apache Maven2Heiko Scherrer
 
How maven makes your development group look like a bunch of professionals.
How maven makes your development group look like a bunch of professionals.How maven makes your development group look like a bunch of professionals.
How maven makes your development group look like a bunch of professionals.Fazreil Amreen Abdul Jalil
 
The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9jClarity
 
Hudson: Your robotic butler
Hudson: Your robotic butlerHudson: Your robotic butler
Hudson: Your robotic butlerSteven Merrill
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntfUlrich Krause
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonVladLica
 
Jenkins Pipeline 101 and TCI - presentation and workshop
Jenkins Pipeline 101 and TCI - presentation and workshopJenkins Pipeline 101 and TCI - presentation and workshop
Jenkins Pipeline 101 and TCI - presentation and workshopYoram Michaeli
 
State of the Jenkins Automation
State of the Jenkins AutomationState of the Jenkins Automation
State of the Jenkins AutomationJulien Pivotto
 

La actualidad más candente (19)

Java Builds with Maven and Ant
Java Builds with Maven and AntJava Builds with Maven and Ant
Java Builds with Maven and Ant
 
Apache maven 2 overview
Apache maven 2 overviewApache maven 2 overview
Apache maven 2 overview
 
Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)
 
Development Tools - Maven
Development Tools - MavenDevelopment Tools - Maven
Development Tools - Maven
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
 
Log management (elk) for spring boot application
Log management (elk) for spring boot applicationLog management (elk) for spring boot application
Log management (elk) for spring boot application
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 features
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with Maven
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
 
Maven tutorial for beginners
Maven tutorial for beginnersMaven tutorial for beginners
Maven tutorial for beginners
 
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
 
Introduction in Apache Maven2
Introduction in Apache Maven2Introduction in Apache Maven2
Introduction in Apache Maven2
 
How maven makes your development group look like a bunch of professionals.
How maven makes your development group look like a bunch of professionals.How maven makes your development group look like a bunch of professionals.
How maven makes your development group look like a bunch of professionals.
 
The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9
 
Hudson: Your robotic butler
Hudson: Your robotic butlerHudson: Your robotic butler
Hudson: Your robotic butler
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
 
Jenkins Pipeline 101 and TCI - presentation and workshop
Jenkins Pipeline 101 and TCI - presentation and workshopJenkins Pipeline 101 and TCI - presentation and workshop
Jenkins Pipeline 101 and TCI - presentation and workshop
 
State of the Jenkins Automation
State of the Jenkins AutomationState of the Jenkins Automation
State of the Jenkins Automation
 

Destacado

ToursJUG-Maven 3.x, will it lives up to its promises
ToursJUG-Maven 3.x, will it lives up to its promisesToursJUG-Maven 3.x, will it lives up to its promises
ToursJUG-Maven 3.x, will it lives up to its promisesArnaud Héritier
 
Blessings of the fear of the lord
Blessings of the fear of the lordBlessings of the fear of the lord
Blessings of the fear of the lordBrian Salisbury
 
OpenStack + Cloud Foundry for the OpenStack Boston Meetup
OpenStack + Cloud Foundry for the OpenStack Boston MeetupOpenStack + Cloud Foundry for the OpenStack Boston Meetup
OpenStack + Cloud Foundry for the OpenStack Boston Meetupragss
 
최종 역사문화의길수정계획 1차중간보고 수정
최종 역사문화의길수정계획 1차중간보고 수정최종 역사문화의길수정계획 1차중간보고 수정
최종 역사문화의길수정계획 1차중간보고 수정seekly
 
eXo Software Factory Overview
eXo Software Factory OvervieweXo Software Factory Overview
eXo Software Factory OverviewArnaud Héritier
 
미사교 0924 google_plus
미사교 0924 google_plus미사교 0924 google_plus
미사교 0924 google_plusSeok Lee
 
Creative & media in the local area - leaft
Creative & media in the local area - leaftCreative & media in the local area - leaft
Creative & media in the local area - leaftParnyan
 
LavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promisesLavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promisesArnaud Héritier
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenLorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenArnaud Héritier
 
Jenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of JenkinsJenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of JenkinsArnaud Héritier
 
Microsoft DreamSpark 가이드
Microsoft DreamSpark 가이드Microsoft DreamSpark 가이드
Microsoft DreamSpark 가이드HyunJung Kim
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기Lee Ji Eun
 

Destacado (12)

ToursJUG-Maven 3.x, will it lives up to its promises
ToursJUG-Maven 3.x, will it lives up to its promisesToursJUG-Maven 3.x, will it lives up to its promises
ToursJUG-Maven 3.x, will it lives up to its promises
 
Blessings of the fear of the lord
Blessings of the fear of the lordBlessings of the fear of the lord
Blessings of the fear of the lord
 
OpenStack + Cloud Foundry for the OpenStack Boston Meetup
OpenStack + Cloud Foundry for the OpenStack Boston MeetupOpenStack + Cloud Foundry for the OpenStack Boston Meetup
OpenStack + Cloud Foundry for the OpenStack Boston Meetup
 
최종 역사문화의길수정계획 1차중간보고 수정
최종 역사문화의길수정계획 1차중간보고 수정최종 역사문화의길수정계획 1차중간보고 수정
최종 역사문화의길수정계획 1차중간보고 수정
 
eXo Software Factory Overview
eXo Software Factory OvervieweXo Software Factory Overview
eXo Software Factory Overview
 
미사교 0924 google_plus
미사교 0924 google_plus미사교 0924 google_plus
미사교 0924 google_plus
 
Creative & media in the local area - leaft
Creative & media in the local area - leaftCreative & media in the local area - leaft
Creative & media in the local area - leaft
 
LavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promisesLavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promises
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenLorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - Maven
 
Jenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of JenkinsJenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of Jenkins
 
Microsoft DreamSpark 가이드
Microsoft DreamSpark 가이드Microsoft DreamSpark 가이드
Microsoft DreamSpark 가이드
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
 

Similar a LyonJUG - Maven 3.x, will it live up to its promises?

Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentationArnaud Héritier
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Robert Scholte
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsAlfresco Software
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and dockerFabio Fumarola
 
Top Maven Interview Questions in 2020 | Edureka
Top Maven Interview Questions in 2020 | EdurekaTop Maven Interview Questions in 2020 | Edureka
Top Maven Interview Questions in 2020 | EdurekaEdureka!
 
Apache Continuum Build, Test, and Release
Apache Continuum Build, Test, and ReleaseApache Continuum Build, Test, and Release
Apache Continuum Build, Test, and Releaseelliando dias
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer DayKimihiko Kitase
 
Docker Hub: Past, Present and Future by Ken Cochrane & BC Wong
Docker Hub: Past, Present and Future by Ken Cochrane & BC WongDocker Hub: Past, Present and Future by Ken Cochrane & BC Wong
Docker Hub: Past, Present and Future by Ken Cochrane & BC WongDocker, Inc.
 
Containing the world with Docker
Containing the world with DockerContaining the world with Docker
Containing the world with DockerGiuseppe Piccolo
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svnAnkur Goyal
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGroup
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...Rahul Krishna Upadhyaya
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and DockerFabio Fumarola
 
Leading a Community-Driven Open Source Project
Leading a Community-Driven Open Source ProjectLeading a Community-Driven Open Source Project
Leading a Community-Driven Open Source ProjectVincent Massol
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experienceIgor Anishchenko
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experienceAlex Tumanoff
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21drewz lin
 

Similar a LyonJUG - Maven 3.x, will it live up to its promises? (20)

Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentation
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
Top Maven Interview Questions in 2020 | Edureka
Top Maven Interview Questions in 2020 | EdurekaTop Maven Interview Questions in 2020 | Edureka
Top Maven Interview Questions in 2020 | Edureka
 
Apache Continuum Build, Test, and Release
Apache Continuum Build, Test, and ReleaseApache Continuum Build, Test, and Release
Apache Continuum Build, Test, and Release
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
 
Developing XWiki
Developing XWikiDeveloping XWiki
Developing XWiki
 
Apereo OAE - Bootcamp
Apereo OAE - BootcampApereo OAE - Bootcamp
Apereo OAE - Bootcamp
 
Docker Hub: Past, Present and Future by Ken Cochrane & BC Wong
Docker Hub: Past, Present and Future by Ken Cochrane & BC WongDocker Hub: Past, Present and Future by Ken Cochrane & BC Wong
Docker Hub: Past, Present and Future by Ken Cochrane & BC Wong
 
Containing the world with Docker
Containing the world with DockerContaining the world with Docker
Containing the world with Docker
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
 
Leading a Community-Driven Open Source Project
Leading a Community-Driven Open Source ProjectLeading a Community-Driven Open Source Project
Leading a Community-Driven Open Source Project
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
 

Más de Arnaud Héritier

Devops Recto-Verso @ DevoxxMA
Devops Recto-Verso @ DevoxxMADevops Recto-Verso @ DevoxxMA
Devops Recto-Verso @ DevoxxMAArnaud Héritier
 
Java is evolving rapidly: Maven helps you staying on track
Java is evolving rapidly:  Maven helps you staying on trackJava is evolving rapidly:  Maven helps you staying on track
Java is evolving rapidly: Maven helps you staying on trackArnaud Héritier
 
Quand java prend de la vitesse, apache maven vous garde sur les rails
Quand java prend de la vitesse, apache maven vous garde sur les railsQuand java prend de la vitesse, apache maven vous garde sur les rails
Quand java prend de la vitesse, apache maven vous garde sur les railsArnaud Héritier
 
Sonar In Action 20110302-vn
Sonar In Action 20110302-vnSonar In Action 20110302-vn
Sonar In Action 20110302-vnArnaud Héritier
 
2014 August - eXo Software Factory Overview
2014 August - eXo Software Factory Overview2014 August - eXo Software Factory Overview
2014 August - eXo Software Factory OverviewArnaud Héritier
 
CRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieCRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieArnaud Héritier
 
Hands on iOS developments with jenkins
Hands on iOS developments with jenkinsHands on iOS developments with jenkins
Hands on iOS developments with jenkinsArnaud Héritier
 
Mobile developments at eXo
Mobile developments at eXoMobile developments at eXo
Mobile developments at eXoArnaud Héritier
 
Apache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationApache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationArnaud Héritier
 
Riviera JUG (20th April, 2010) - Maven
Riviera JUG (20th April, 2010) - MavenRiviera JUG (20th April, 2010) - Maven
Riviera JUG (20th April, 2010) - MavenArnaud Héritier
 
Lausanne Jug (08th April, 2010) - Maven
Lausanne Jug (08th April, 2010) - MavenLausanne Jug (08th April, 2010) - Maven
Lausanne Jug (08th April, 2010) - MavenArnaud Héritier
 
Geneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenGeneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenArnaud Héritier
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenArnaud Héritier
 
20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache MavenArnaud Héritier
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache MavenArnaud Héritier
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
20080513 - Paris Jug - Maven à La Demande
20080513 - Paris Jug - Maven à La Demande20080513 - Paris Jug - Maven à La Demande
20080513 - Paris Jug - Maven à La DemandeArnaud Héritier
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache MavenArnaud Héritier
 

Más de Arnaud Héritier (20)

Devops Recto-Verso @ DevoxxMA
Devops Recto-Verso @ DevoxxMADevops Recto-Verso @ DevoxxMA
Devops Recto-Verso @ DevoxxMA
 
Java is evolving rapidly: Maven helps you staying on track
Java is evolving rapidly:  Maven helps you staying on trackJava is evolving rapidly:  Maven helps you staying on track
Java is evolving rapidly: Maven helps you staying on track
 
Quand java prend de la vitesse, apache maven vous garde sur les rails
Quand java prend de la vitesse, apache maven vous garde sur les railsQuand java prend de la vitesse, apache maven vous garde sur les rails
Quand java prend de la vitesse, apache maven vous garde sur les rails
 
Sonar In Action 20110302-vn
Sonar In Action 20110302-vnSonar In Action 20110302-vn
Sonar In Action 20110302-vn
 
2014 August - eXo Software Factory Overview
2014 August - eXo Software Factory Overview2014 August - eXo Software Factory Overview
2014 August - eXo Software Factory Overview
 
CRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieCRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - Quickie
 
Hands on iOS developments with jenkins
Hands on iOS developments with jenkinsHands on iOS developments with jenkins
Hands on iOS developments with jenkins
 
Mobile developments at eXo
Mobile developments at eXoMobile developments at eXo
Mobile developments at eXo
 
Apache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationApache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentation
 
Riviera JUG (20th April, 2010) - Maven
Riviera JUG (20th April, 2010) - MavenRiviera JUG (20th April, 2010) - Maven
Riviera JUG (20th April, 2010) - Maven
 
Lausanne Jug (08th April, 2010) - Maven
Lausanne Jug (08th April, 2010) - MavenLausanne Jug (08th April, 2010) - Maven
Lausanne Jug (08th April, 2010) - Maven
 
Geneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenGeneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - Maven
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache Maven
 
Maven for eXo VN
Maven for eXo VNMaven for eXo VN
Maven for eXo VN
 
20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
20080513 - Paris Jug - Maven à La Demande
20080513 - Paris Jug - Maven à La Demande20080513 - Paris Jug - Maven à La Demande
20080513 - Paris Jug - Maven à La Demande
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
 

Último

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Último (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

LyonJUG - Maven 3.x, will it live up to its promises?

  • 1. 1 Apache Maven 3.x Will it live up to its promises? By Arnaud Héritier
  • 2. 2 About me •  Committer since 2004 and member of the PMC •  Coauthor of « Apache Maven » published by Pearson (in French) •  Software Factory Manager eXo platform » In charge of tools and methods •  Contact me : » http://aheritier.net » Twitter : @aheritier » Skype : aheritier
  • 3. 3 Definition •  Apache Maven is a software project management and comprehension tool. •  Based on the concept of a project object model (POM) » Maven can manage a project's build, binaries, reporting and documentation from a central piece of information. •  Apache Maven is standards/conventions driven » How many of you are doing JEE and related developments ?
  • 4. 4 History •  Initiated in 2001 by Jason Van Zyl in Alexandria, an Apache Jakarta project, •  Moved to Turbine few months after, •  Became a Top Level Project in 2003. •  Maven 2.0 released in September 2005 •  Maven 3.0 released in October 2010 » 3.0.1 soon (RC1 staged)
  • 5. 5 Choose your way of thinking Conventions approach Scripting approach
  • 6. 6 Competitors •  Ant + Ivy, Easy Ant, Gant, Gradle, Buildr… •  Script oriented » You can do what you want ! •  Reuse many of Maven conventions (directories layout, …) and services (repositories) but without enforcing them •  The risk for them : Not being able to evolve due to the too high level of customization proposed to the user. » We tried on Maven 1 and it died because of that. It was impossible to create a set of tests to cover all usages. » It’s like providing a framework without public API L
  • 7. 7 With scripts oriented builds You can have (if you have good skills) But often you have (moreover after years …)
  • 8. 8 With Maven We dream to deliver (Maven 3.x) But yesterday we too often had (Maven 2.x)
  • 10. 10 Backward compatibility - Criticisms •  Migration from Maven 1 to Maven 2 was impossible. Everything had to be re-done. •  Updates between 2.x versions and also between 2.0.x weren’t often without side effects.
  • 11. 11 Backward compatibility •  Near to 700 integration tests •  Tested for months on a large set of OSS projects •  7 alphas + 3 betas versions •  It’s a revolution under the hood but an evolution for end users
  • 14. 14 Performances - Criticisms •  Maven is slow •  It spends its time to download the world •  Whereas everybody has multicore CPUs, it doesn’t allow to process modules builds in parallel
  • 15. 15 Performances •  A set of benchmark tools was developed to measure Maven performances (IO, CPU, Memory, Network …) •  Startup and execution times are reduced » Java 5 optimizations » Code cleanup and improvements •  Reduced Memory footprint •  Artifacts Resolution Caching » .lastUpdated files in your local repo » Enforce checks with –U option
  • 16. 16 Performances – Parallel builds •  Parallel builds » An execution plan is predefined at startup to define which modules could be built in // » Requires to have up to date plugins to avoid dead locks and some others issues » Launch a build with 2 threads •  mvn –T 2 install » Launch a build with 2 threads per CPU core •  mvn –T 2C install
  • 17. 17 Performances – mvnsh •  Performances optimizations » Intelligent cache system (artifacts resolution, project descriptors …) » No need to restart a JVM for each build •  Cross platform « unix like » shell » Alias, environment settings … » Color highlighting
  • 18. 18 Performances – mvnsh •  All in one » Includes Maven 3.x » Allows to have color highlighting with “standard” Maven 3.x •  Developed and freely distributed by Sonatype
  • 21. 21 Extensibility - Criticisms •  It is difficult and time consuming to extend maven (write plugins) » Many unknown technologies like Plexus for IOC •  It is difficult/impossible to reuse maven plugins » Its impossible to extend plugins/mojo and lifecycles
  • 22. 22 Extensibility •  New APIs to improve abstraction of underneath implementation » Aether : to manage artifacts and repositories •  Plugin classloader partitioning •  Embeddable •  IOC replaced by Guice » For now (3.0) a wrapper is hiding the change » You don’t yet use Guice directly (from plugins for example)
  • 24. 24 Robusness - Criticisms •  Builds aren’t predictable •  Errors are difficult to diagnose
  • 25. 25 Robusness - Validations •  Many more validations in POMs (warnings or errors) » Missing plugins versions » Duplicated dependencies in a POM » Incoherent inheritance (wrong relative path or parent not in the upper directory) •  Improved error messages with links to wiki pages for more detailed information
  • 26. 26 Robusness – Artifacts management •  Parent POMs prefer to resolve from repositories » Version less parent will be available in a future maven 3.x release by using the relativePath element •  Profiles usage consolidation » No more profiles.xml (incompatible with future polyglot feature)
  • 27. 27 Robusness – Artifacts management •  No more support for legacy repository layout for Maven 1.0 •  SNAPSHOTs are always deployed with timestamps
  • 28. 28 Robusness – Plugins management •  Plugin version is by default RELEASE and no more SNAPSHOT » Affects command-line invocation •  Plugins cannot use versions LATEST or RELEASE » Affects command-line invocation and POM •  Plugins are resolved only from <pluginRepository> entries
  • 29. 29 Robusness – Site plugin •  Site plugin is now completely extracted from Maven core » It has its own lifecycle » reporting section in POM becomes useless (moved in plugin configuration)
  • 31. 31 Criticisms •  XML, we don’t like it •  POM is too verbose •  POM v4 didn’t evolve last 5 years » When will you add new common attributes to ease plugins configuration (encoding …) » New feature like global exclusions
  • 32. 32 POM •  No change in POM syntax for Maven 3.0 •  Changes will occur in 3.x versions » New model with a new version » Only new things » Generation / deployment of 4.0.0 current POM to keep backward compatibility with old maven versions •  Mixins to allow to import POM fragments
  • 33. 33 POM - Polyglot •  Developed and freely distributed by Sonatype •  Extended version of Maven 3.0 using its new embedding and extensibility capabilities •  Allow translation (read/write) from/to various syntaxes » Yaml » Scala » Groovy •  Allow macros and freeform scripting
  • 35. 35 Licence et copyrights •  Photos and logos belong to their respective authors/owners •  Various ideas are coming from the excellent presentation done by Matthew McCullough : » http://www.slideshare.net/matthewmccullough/ maven-30-at-oredev
  • 36. 36 Licence et copyrights •  Content under Creative Commons 3.0 » Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). » Noncommercial — You may not use this work for commercial purposes. » Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. •  http://creativecommons.org/licenses/by-nc-sa/3.0/us/
  • 37. TO GO FURTHER … Apache Maven
  • 39. 39 Users Mailing List •  Blue : » Number of subscribers •  Red : » Number of messages per day •  users@maven.apache.or g » Traffic statistics cover a total of 1697 days. » Current subscribers: 1861 » Current digest subscribers:47 » Total posts (1697 days): 80633 » Mean posts per day: 47.52 •  http://pulse.apache.org/
  • 42. 42 The team •  60 committers, •  More than 30 active in 2009, •  Several organizations like Sonatype, deliver resources and professional support, •  A community less isolated : more interactions with Eclipse, Jetty,
  • 45. 45 Some links •  The main web site : » http://maven.apache.org •  Project’s team wiki : » http://docs.codehaus.org/display/MAVEN •  Project’s users wiki : » http://docs.codehaus.org/display/MAVENUSER
  • 46. 46 Books •  Nicolas De loof Arnaud Héritier » Published by Pearson » Collection Référence » Based on our own experiences with Maven. » From beginners to experts. » In French only
  • 47. 47 Books •  Sonatype / O’Reilly : » The Definitive Guide » http:// www.sonatype.com/ books » Free download » Available in several languages
  • 48. 48 Books •  Exist Global » Better builds with Maven » http:// www.maestrodev.com /better-build-maven » Free download
  • 50. 50 Support •  Mailing lists » http://maven.apache.org/mail-lists.html •  IRC » irc.codehaus.org - #maven •  Forums » http://www.developpez.net/ forum maven » In French •  Dedicated support » Sonatype and many others companies