Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

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 projects 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 ? 3

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.3 – March 2011 4

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 a well tested set of public API  6

7.
With scripts oriented buildsYou can have But often you have(if you have good skills) (moreover after years …) 7

8.
With MavenWe dream to deliver But yesterday we too often had(Maven 3.x) (Maven 2.x) 8

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

11.
Backward compatibility• Near to 700 integration tests• Tested for several months on a large set of OSS projects• 7 alphas + 3 betas versions• A bug fix release every 6 weeks• It’s a revolution under the hood but an evolution for end users 11

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 21

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) 26

27.
Robusness – Artifacts management• No more support for legacy repository layout for Maven 1.0• SNAPSHOTs are always deployed with timestamps 27

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 28

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) 29

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 31

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 32

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/ 36

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