Maven 2 & Continuum. by Trygve Laugstøl

Similar documents
What is Maven? Apache Maven is a software project management and comprehension tool (build, test, packaging, reporting, site, deploy).

I Got My Mojo Workin'

MAVEN INTERVIEW QUESTIONS

Maven. INF5750/ Lecture 2 (Part II)

Apache Maven. Created by anova r&d bvba

Topics covered. Introduction to Maven Maven for Dependency Management Maven Lifecycles and Plugins Hands on session. Maven 2

MAVEN MOCK TEST MAVEN MOCK TEST III

MAVEN MOCK TEST MAVEN MOCK TEST I

Why switch exist-db from Ant to Maven?

Pour aller plus loin : Programmation outillée

Maven in the wild. An introduction to Maven

Maven Introduction to Concepts: POM, Dependencies, Plugins, Phases

Setting up a Maven Project

Simplified Build Management with Maven

MAVEN MOCK TEST MAVEN MOCK TEST IV

DevOps and Maven. Eamonn de Leastar Dr. Siobhán Drohan Produced by:

Jahia Studio JAHIA DOCUMENTION

Selenium Testing Course Content

Tattletale. What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap

Software Engineering - Development Infrastructure 2. Kristjan Talvar Nortal

Apache Maven: Best Practices

TIBCO StreamBase 10.2 Building and Running Applications in Studio, Studio Projects and Project Structure. November 2017

Session 24. Spring Framework Introduction. Reading & Reference. dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p

Content. Development Tools 2(57)

Configuration & Build Management

Component based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth

JBoss to Geronimo - EJB-Session Beans Migration

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

maven Build System Making Projects Make Sense

Construction: version control and system building

Sonatype CLM - IDE User Guide. Sonatype CLM - IDE User Guide

An Integrated Approach to Managing Windchill Customizations. Todd Baltes Lead PLM Technical Architect SRAM

Maven 2.1 Plugin and Extension Loading Design

What s new in IBM Operational Decision Manager 8.9 Standard Edition

GlassFish V3 Engineer's guide

TOP REASONS WHY YOU SHOULD SWITCH TO MAVEN 3

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

Administering Apache Geronimo With Custom Server Assemblies and Maven. David Jencks

SUN Enterprise Development with iplanet Application Server

Maven POM project modelversion groupid artifactid packaging version name

SpringSource Tool Suite 2.7.1

sites</distribsiteroot>

<put document name here> 1/13

Apache Maven MarsJUG. Arnaud Héritier exo platform Software Factory Manager

This tutorial explains how you can use Gradle as a build automation tool for Java as well as Groovy projects.

JBoss to Geronimo - EJB-MDB Migration

Software configuration management

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

The Maven 2 POM demystified

FreeMarker in Spring Web. Marin Kalapać

The Workshop. Slides (you have a copy in the zip) Practical labs Ask questions

Maven 2 The powerful buildsystem. a presentation for EL4J developers by Martin Zeltner (MZE) November 2007

Geronimo Server Release Process

J2EE Application Development with WebSphere Studio

Advanced Dependency Management with Gradle. Benjamin Muschko, Gradle Inc.

Enterprise JavaBeans. Layer 05: Deployment

SpringSource Tool Suite M2

Con$nuous Integra$on Development Environment. Kovács Gábor

Publishing automation using DevOps STC India Annual Conference. Srikanta Dash and Visagan Santhanam, Unisys India Pvt. Ltd.

B. Assets are shared-by-copy by default; convert the library into *.jar and configure it as a shared library on the server runtime.

Continuous Integration using Docker & Jenkins

Packaging, automation, Continuous Integration

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve

Web Application Architecture (based J2EE 1.4 Tutorial)

Tuesday, April 26, 2011

M E R C U R I A L (The Source Control Management)

MIGRATION GUIDE DIGITAL EXPERIENCE MANAGER 7.2

Revision Control. Software Engineering SS 2007

Web Architecture and Development

Repository Management and Sonatype Nexus. Repository Management and Sonatype Nexus

Continuous Integration using Cruise Control

About me. Jesper Pedersen. Project lead for. Chairman for Boston JBoss User Group. Core developer, JBoss by Red Hat

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p.

Building the Enterprise

[DEBUG] Created new class realm maven.api [DEBUG] Importing foreign packages into class realm maven.api [DEBUG] Imported: org.apache.maven.

JAVA & J2EE UNIT -1 INTRODUCTION

CONTINUOUS DELIVERY IN THE ORACLE CLOUD

... Apache Maven PDF Plugin v. 1.4 User Guide.... The Apache Software Foundation

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Web Architecture and Development

Denn n i n s i s L und n b d erg r

Build. System building

Push up your code next generation version control with (E)Git

Developing Applications Using Continuous Integration 12c ( )

CHAPTER 6. Organizing Your Development Project. All right, guys! It s time to clean up this town!

JBoss Tattletale. Betraying all your project's naughty little secrets

Sonatype CLM Enforcement Points - Nexus. Sonatype CLM Enforcement Points - Nexus

... Maven.... The Apache Maven Project

Programming in the large. Lecture 22: Configuration Management. Agenda for today. Bertrand Meyer. Bernd Schoeller

DEVOPS TRAINING COURSE CONTENT

Cheat Sheet: Wildfly Swarm

Overview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture

Oracle Developer Day

... Fisheye Crucible Bamboo

Beginner s guide to continuous integration

jar command Java Archive inherits from tar : Tape Archive commands: jar cvf filename jar tvf filename jar xvf filename java jar filename.

Incremental improvements for the Spring Framework

Oracle Corporation

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

Transcription:

Maven 2 & Continuum by Trygve Laugstøl <trygvis@apache.org>

Agenda About Maven Maven 2 Highlights Changes The POM Project layout Plugin architecture Continuum

About Maven It s a different kind of build tool than Make and Ant Plugins are used to build the project Each project results in a single artifact Typically a JAR or a WAR Artifacts is installed in a repository User repository: ~/.maven/repository Company repository: http://intra/repository Central repository: http://ibiblio.org/maven

About Maven Declarative configuration The POM project.xml Dependencies Documentation HTML PDF Pushes for standardization Source layouts Reports

About Maven Example POM <project> <groupid>plexus</groupid> <artifactid>plexus-artifact-container</aritfactid> <version>1.0-snapshot</version> <dependencies> <dependency> <groupid>plexus</groupid> <artifactid>plexus</artifactid> <version>1.0-snapshot</version> </dependency> </dependencies>..

About Maven Example POM.. <build> <sourcedirectory>src/main/java</sourcedirectory> <unittestsourcedirectory>src/test/java</unitsourcetestdirectory> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.png</include> <includes> </resource> </resources> </build> </project>

Maven 2 - Highlights Status Some experimental features Changes Enhanced project definition tags More strict rules Transitive dependencies Generic reusable libraries Maven Wagon Maven Scm Maven Artifact

Changes The POM The extend tag is replaced with a more declarative parent tag Old: <extend>../project.xml</extend> New: <parent> <groupid>continuum</groupid> <artfiactid>continuum-core</artifactid> <version>1.0-snapshot</version> </parent> Makes it easier to find parent POMs

Changes The POM All POMs extend the super POM unless explicitly set Follows the inheritance model in Java where all objects inheriting from Object Contains default values for most projects Main sources is in src/main/java Unit test sources is in src/test/java Main resources is in src/main/resources Unit test resources is in src/test/resources Uses the new guidelines for project layout Reduce the size of the POM

Changes The POM Issue Management Old <issuetrackingurl> http://host/?browseproject.jspa&id=10030&bugid= </issuetrackingurl> New <issuemanagement> <system>jira</system> <url>http://jira.codehaus.org/</url> </issuemanagement> Source Control Management <repository> has been renamed to <scm>

Changes The POM Removed <versions> <branches> Will be collected from a set of POMs Added Continous integration info <cimanagement> <nagemailaddress>dev@foo.org</nagemailaddress> <system>continuum</system> <url>http://continuum.codehaus.org/builds</url> </cimanagement>

Changes The POM Pre and post goals are moved from maven.xml to the POM: Old <project> <goal name= company:install prereqs= jar:jar,company:post-process-jar,jar:install /> </project> New <pregoals> <pregoal> <name>company:install</name> <attain>jar:jar,company:process-jar,jar:install</attain> </pregoal> </pregoals>

Changes Project Layout The directory of the project must match the artifact id The parent POM must be in a parent directory The POM is renamed from project.xml to pom.xml Both descriptors can coexist Makes migration easier

Changes Project Layout All project metadata is in the POM Only one place to look for metadata No more: maven.xml project.properties Moved inside the POM Unfinished build.properties <plugins> <plugin> <configuraion/> </plugin> </plugins> $MAVEN_HOME/configuration.xml Installation settings $HOME/.m2/configuration.xml Specifies user configuration

Changes Project Layout Example layout Continuum: pom.xml /continuum-api pom.xml /continuum-core pom.xml /continuum-builders pom.xml /continuum-builder-maven2 pom.xml Given a fresh check out and empty repository $ m2 jar:install in /continuumbuilder/continuum-builder-maven2 will build and install the artifact

Changes Project Layout Example POM inheritance - Continuum pom-4.0.0.xml /pom.xml /continuum-builder/pom.xml /continuum-builder-maven2/pom.xml

Changes The Reactor The reactor is used to build multiple projects with a single command Takes interproject dependencies in account so the project will be built in the correct order Built into the core

Changes Repository Layout Proper support for Primary artifacts JARs, EJB implementations, WARs Secondary artifacts EJB client stubs, RMI stubs Javadoc, source zips/tarballs Extensible Plugins can define their own artifact types

Changes Repository Layout Example artifact: Group id: org.apache.maven Artifact id: maven-wagon Version: 1.0 Type: jar org/ apache/ maven/ maven-wagon/ 1.0/ maven-wagon-1.0.jar maven-wagon-1.0.jar.md5 maven-wagon-1.0.jar.sources maven-wagon-1.0.jar.sources.md5 maven-wagon-1.0.jar.javadocs maven-wagon-1.0.jar.javadocs.md5

Changes Plugin Architecture No more Jelly! Transparently downloaded Installed in the current session on the fly Maven 2 plugins are called Mojos All core plugins are written in pure Java All core plugins will be rewritten Mojos are completely reusable Ant, Jelly and bean generators

Generic Reusable Libraries Maven Wagon Library for transporting artifacts Maven SCM Library for working with SCMs CVS, Subversion, StarTeam, Perforce, Clearcase Maven Artifact Library for working with artifacts. Artifact layout Deployment, installation, fetching Conflict resolving Usable for any tool using the Maven repository

Legacy Support Conversion tools for project.xml and project.properties files We'll make a survey to figure exactly what people want after the first alpha

Continuum Continuous integration server Currently supports Maven 2 Maven 1 Some restrictions Will support Ant Shell scripts

Continuum - Features Will be able to build on Schedule Changes in the SCM Changes in dependencies Manages inter-project dependencies Will read unit test reports from the build and store them

Resources Continuum http://continuum.codehaus.org Mojo http://mojo.codehaus.org Maven blog http://www.mavenblogs.com Maven 2 CVS http://cvs.apache.org/viewcvs.cgi/mavencomponents CVS Check out: :pserver:anoncvs@cvs.apache.org:/home/cvspublic/ cvs -d co maven-components