Maven 3 New Features. Stefan Scheidt Solution Architect OPITZ CONSULTING GmbH



Similar documents
Maven or how to automate java builds, tests and version management with open source tools

Build management & Continuous integration. with Maven & Hudson

Sonatype CLM for Maven. Sonatype CLM for Maven

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

Meister Going Beyond Maven

Evil (Maven) Snapshots. Dr. Halil-Cem Gürsoy G+

Content. Development Tools 2(63)

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Continuous Integration The Full Monty Artifactory and Gradle. Yoav Landman & Frederic Simon

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Integration in Practice

Android ist anders - Android Dependency Management

Hudson configuration manual

Continuous Integration For Fusion Middleware

Introduction to Programming Tools. Anjana & Shankar September,2010

Software project management. and. Maven

Maven2. Configuration and Build Management. Robert Reiz

Builder User Guide. Version Visual Rules Suite - Builder. Bosch Software Innovations

Builder User Guide. Version 5.4. Visual Rules Suite - Builder. Bosch Software Innovations

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

Software Development In the Cloud Cloud management and ALM

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Maven 2 in the real world

Developer s Guide. How to Develop a Communiqué Digital Asset Management Solution

Apache Jakarta Tomcat

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Repository Management with Nexus

Continuous integration in OSGi projects using Maven (v:0.1) Sergio Blanco Diez

Building a Modular Server Platform with OSGi. Dileepa Jayakody Software Engineer SSWSO2 Inc.

PHP vs. Java. In this paper, I am not discussing following two issues since each is currently hotly debated in various communities:

Software project management. and. Maven

Software infrastructure for Java development projects

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

Continuous Automated Deployment with

CI/CD Cheatsheet. Lars Fabian Tuchel Date: 18.March 2014 DOC:

SOA-14: Continuous Integration in SOA Projects Andreas Gies

Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation

Take full advantage of IBM s IDEs for end- to- end mobile development

NetBeans IDE Field Guide

Rapid Application Development. and Application Generation Tools. Walter Knesel

Software Quality Exercise 2

WHITE PAPER. Getting started with Continuous Integration in software development. - Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

<Insert Picture Here> GlassFish v3 - A Taste of a Next Generation Application Server

Eclipse 4 RCP application Development COURSE OUTLINE

Configuration Manual Yahoo Cloud System Benchmark (YCSB) 24-Mar-14 SEECS-NUST Faria Mehak

Apache Karaf in real life ApacheCon NA 2014

Nanda Kishor K N. nandakishorkn@gmail.com

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SERVER STANDARD EDITION

AEM Developer Tools for Eclipse

SAP Web IDE Hybrid App Toolkit Add-on

Integrating your Maven Build and Tomcat Deployment

Introduction to Eclipse, Creating Eclipse plug-ins and the Overture editor. David Holst Møller Engineering College of Aarhus

Closed-Loop Ordermanagement

Equinox Framework: A Happier OSGi R6 Implementation

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide

An Introduction to Software Development Process and Collaborative Work

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

Agile Best Practices and Patterns for Success on an Agile Software development project.

Maven2 Reference. Invoking Maven General Syntax: Prints help debugging output, very useful to diagnose. Creating a new Project (jar) Example:

Hands on exercise for

Rational Application Developer Performance Tips Introduction

Contents. Apache Log4j. What is logging. Disadvantages 15/01/2013. What are the advantages of logging? Enterprise Systems Log4j and Maven

Developing with Android Studio

Repository Management with Nexus

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Continuous Integration For Real: The Perforce Java Platform. Hamish Reid Perforce Software Inc.

for High Performance Computing

Triple-E class Continuous Delivery

Upping the game. Improving your software development process

Tutorial on Basic Android Setup

Chapter 1: Web Services Testing and soapui

Developing Applications Using Continuous Integration 12c (12.2.1)

MSWL Development & Tool. Eclipse IDE

Java Mission Control

Jenkins: The Definitive Guide

TeamCity A Professional Solution for Delivering Quality Software, on Time

Continuous integration for databases using Redgate tools

Java Software Quality Tools and techniques

Nuxeo, an open source platform for content-centric business applications. Stéfane Fermigier, Nuxeo Laurent Doguin, Nuxeo

Android Programming: Installation, Setup, and Getting Started

1 What is Cloud Computing? Cloud Infrastructures OpenStack Amazon EC CAMF Cloud Application Management

Agile ALM. Lightweight tools and Agile strategies MANNING MICHAEL HUTTERMANN. Shelter Island

<Insert Picture Here> What's New in NetBeans IDE 7.2

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

Repository Management with Nexus

Write Once, Run Anywhere Pat McDonough

Tutorial: BlackBerry Object API Application Development. Sybase Unwired Platform 2.2 SP04

Virtual Machine (VM) For Hadoop Training

Continuous Integration Multi-Stage Builds for Quality Assurance

soapui Product Comparison

Intel Integrated Native Developer Experience (INDE): IDE Integration for Android*

Jfokus PaaS Hands-On Lab

Managing your Red Hat Enterprise Linux guests with RHN Satellite

Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

Talend Open Studio for ESB. Release Notes 5.2.1

Continuous Integration and Delivery at NSIDC

Transcription:

Stefan Scheidt Solution Architect OPITZ CONSULTING GmbH OPITZ CONSULTING GmbH 2010 Seite 1

Wer bin ich? Software-Entwickler und Architekt Trainer und Coach Autor und Sprecher OPITZ CONSULTING GmbH 2010 Seite 2

Wer ist OPITZ CONSULTING? Last Minute: Offizieller OC 1 Seiter Von Tom Ihr Projektspezialist für Java, SOA und Oracle OPITZ CONSULTING GmbH 2010 Seite 3

Wer sind Sie? OPITZ CONSULTING GmbH 2010 Seite 4

Was ist Maven? Ein deklaratives Build-System Convention over Configuration Wiederverwendung durch Plugins Dependency Management Ein Tool für technisches Projekt-Reporting ein Software Project Management Tool OPITZ CONSULTING GmbH 2010 Seite 5

Was ist Maven? Ein Open-Source-Projekt bei Apache Ziel: Vereinheitlichen von Build, Verteilung, Projekt-Webseite Zweck: Don t repeat yourself! Siehe auch http://maven.apache.org/what-is-maven.html OPITZ CONSULTING GmbH 2010 Seite 6

Release-Historie 1.0 Beta 2003 1.0 2004 / Juli 2.0 Alpha 2005 / April 2.0 Beta 2005 / September 2.0 2005 / Oktober 3.0 Alpha 2009 / Februar 3.0 Beta 2010 / April 8. Oktober 2010: Maven 3.0 Quelle: http://archive.apache.org/dist/maven/binaries/ OPITZ CONSULTING GmbH 2010 Seite 7

Primäre Ziele für Maven 3.0 Refactoring der Code Base Interne Modularisierung OPITZ CONSULTING GmbH 2010 Seite 8

Modularisierung Quelle: http://maven.apache.org/ref/3.0/ OPITZ CONSULTING GmbH 2010 Seite 9

Primäres Anliegen Backward Compatibility Dafür viele Integrationstests Siehe https://grid.sonatype.org/ci/view/maven/job/maven-3.0.x-its/ OPITZ CONSULTING GmbH 2010 Seite 10

Compatibility Notes https://cwiki.apache.org/maven/maven-3x-compatibility-notes.html No more profiles.xml Support for profiles outside of the POM or the settings.xml has been removed Advise: move affected profiles into settings.xml (Hint: mvn --settings some/settings/file.xml) OPITZ CONSULTING GmbH 2010 Seite 11

Compatibility Notes Stricter POM Validation More Errors More Warnings Explanations based on Exceptions Links to Maven Wiki https://cwiki.apache.org/confluence/display/maven/errors+and+solutions OPITZ CONSULTING GmbH 2010 Seite 12

Compatibility Notes Dependency Resolution from Local Repository builds can only access locally cached artifacts if they have the proper repositories configured (Maven 3 keeps track of artifact origin) OPITZ CONSULTING GmbH 2010 Seite 13

Einschub: Aether A library for interacting with artifact repositories Local / Remote Repositories Workspaces Transport Artifact Resolution OPITZ CONSULTING GmbH 2010 Seite 14

Einschub: Maven benutzt Aether OPITZ CONSULTING GmbH 2010 Seite 15

Einschub: Aether Ziele We want to ensure that projects building with SBT, Leinigen, Gradle, Buildr, Ant, or a homegrown system interoperate reliably with Maven repositories. Jason van Zyl, Aether questions answered for JAX OPITZ CONSULTING GmbH 2010 Seite 16

Compatibility Notes Class Path Issues Maven 3 using Aether can result in different class paths Warning: mvn dependency:tree still uses legacy resolution code! (Hint: use mvn --debug) OPITZ CONSULTING GmbH 2010 Seite 17

Compatibility Notes Plugin Repositories Build extensions, plugins and plugin dependencies are only resolved from <pluginrepositories> (and no longer from <repositories>) OPITZ CONSULTING GmbH 2010 Seite 18

Compatibility Notes Plugin Version Resolution automatic plugin version resolution is scheduled for removal Till then: latest release version is used, not latest snapshot version OPITZ CONSULTING GmbH 2010 Seite 19

Compatibility Notes Snapshot Deployments snapshot artifacts will always be deployed using a timestamped version (<uniqueversion>false</uniqueversion> has no effect) OPITZ CONSULTING GmbH 2010 Seite 20

Compatibility Notes Site Generation All reporting related code has been removed from Maven core Therefore one must use Maven Site Plugin 3.x Siehe https://cwiki.apache.org/maven/maven-3x-and-site-plugin.html OPITZ CONSULTING GmbH 2010 Seite 21

Compatibility Notes Configuration of reporting plugins plugin configuration in <reporting> no longer affects plugins in <build> (when executing a plugin during build lifecycle or from cli, only configuration from <build> is considered) OPITZ CONSULTING GmbH 2010 Seite 22

Plugin Compatibility Plugin Compatibility Matrix https://cwiki.apache.org/maven/maven-3x-plugin-compatibility-matrix.html Reporting Plugins Compatibility Matrix https://cwiki.apache.org/maven/maven-3x-and-site-plugin.html OPITZ CONSULTING GmbH 2010 Seite 23

Maven Shell http://shell.sonatype.org/ https://docs.sonatype.org/display/mvnsh/home CLI for Maven standalone Java process keeps POMs in memory for faster builds replaces maven-cli-plugin OPITZ CONSULTING GmbH 2010 Seite 24

Performance mini small 2.2.1 3.0 Beta 3 Shell 0.10 2.2.1 3.0 Beta 3 Shell 0.10 clean 1 0,795 0,715 1 0,942 0,803 1. install 4 4,007 3,550 9 8,916 7,286 2. install 3 3,072 1,835 7 6,584 4,715 3. install 3 3,634 1,856 7 6,683 4,239 OPITZ CONSULTING GmbH 2010 Seite 25

Performance: Parallel builds https://cwiki.apache.org/confluence/display/maven/parallel+builds+in+maven+3 Experimental Feature since 3.0 Beta 1 mvn -T 4 clean install # Builds with 4 threads mvn -T 1C clean install # 1 thread per cpu core mvn -T 1.5C clean install # 1.5 thread per core 20-50% speed improvement is quite common Depends on distribution of tests OPITZ CONSULTING GmbH 2010 Seite 26

Maven 3 und IDEs Major Java IDEs allready include (some version of) Maven 3 Eclipse via m2eclipse, IntelliJ, NetBeans Still no support by Oracle JDeveloper OPITZ CONSULTING GmbH 2010 Seite 27

Maven 3 und CI-Systeme Hudson No support for Maven 3 yet, vote for http://issues.hudson-ci.org/browse/hudson-4988 Work Around: Free Style Projects Shell Command: export M2_HOME=/path/to/apache-maven-3.0-beta-3 export M2=$M2_HOME/bin export PATH=$M2:$PATH cd someproject mvn clean install OPITZ CONSULTING GmbH 2010 Seite 28

Maven 3 und CI-Systeme Teamcity No Support in Teamcity 5 Support announced for Teamcity 6 OPITZ CONSULTING GmbH 2010 Seite 29

Maven 3 und Sonar Sonar 2.2 supports Maven 3 But you need to use sonar-maven3-plugin:2.2 (mvn org.codehaus.sonar:sonar-maven3-plugin:2.2:sonar) Siehe http://www.sonatype.com/people/2010/08/maven-3-and-sonar/ OPITZ CONSULTING GmbH 2010 Seite 30

Polyglot Maven http://polyglot.sonatype.org/ OPITZ CONSULTING GmbH 2010 Seite 31

Ausblicke m2eclipse will move to eclipse.org Release of m2eclipse 1.0 soon Release of mvnsh fairly soon new phase of work on Polyglot Maven OSGi runtime in future release OPITZ CONSULTING GmbH 2010 Seite 32

Ausblicke: Maven 3.1 POM format 4.1 Global excludes Versionless parent elements Mixins New settings system New Plugin API OPITZ CONSULTING GmbH 2010 Seite 33

Ausblicke - Quellen http://java.profict.nl/presentaties/maven.pdf http://www.sonatype.com/people/ 2010/10/maven-3-0-has-landed/ http://www.infoq.com/news/2010/10/ maven-30-released OPITZ CONSULTING GmbH 2010 Seite 34

Fazit We see this as a new beginning for Maven Jason van Zyl OPITZ CONSULTING GmbH 2010 Seite 35

Fragen und Antworten OPITZ CONSULTING GmbH 2010 Seite 36

Kontakt Stefan Scheidt Solution Architect OPITZ CONSULTING GmbH Kirchstr. 6, 51647 Gummersbach Tel. +49 (2261) 6001-0 stefan.scheidt@opitz-consulting.com OPITZ CONSULTING GmbH 2010 Seite 37