Maven 04 March 2016 1 1.

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

Web Toolkit Julie George & Ronald Lopez 1. Requirements  Java SDK version 1.5 or later  Apache Ant is also necessary to run command line arguments 
Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
Introduction to Maven Michael Youngstrom. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to the Java Stack.
Build your Android App with Gradle Android new build system.
Functional Testing with the Java Stack Test Runner
ANT: Another Nice Tool Ali Beyad October 1, 2003.
ANT: Another Nice Tool Ali Beyad October 1, 2003.
Java Build Tool Comparison HJUG - April 29th, 2009 John Tyler.
Java development infrastructure at FMI Pekka Rantala FMI.
Maven: Build and project management in the 21th century.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Open source administration software for education research administration Lin-Long Shyu System Analyst Kuali Coeus Technical Team Indiana University
APACHE MAVEN Bhavana Sudharshan Jaydeep Patel. Introduction What is Maven? “Maven is a software management and comprehension tool based on the concept.
Maven and Stack Starter Michael Youngstrom. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to Java Stack.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
SOA-14: Continuous Integration in SOA Projects Experience from the field Andreas Gies Principal Architect.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
LDS Account Integration. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions Prerequisites:
Using the ALM Module Fully Automated Deployments in Stack 3.2.
The DSpace Course Module – Upgrading from 1.4 to 1.5.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
Using the ALM Module Michael Youngstrom. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in lab Please ask questions.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
Jericho CSCI 7818 September 5, 2001 Carissa Mills.
Maven 2.0 Improve your build patterns Vincent Massol CTO Pivolis.
Maven for building Java applications By Nalin De Zoysa
Spring-Batch Tutorial Getting Started Guide. Agenda  Software prerequisites  Creating new batch application  Setting up database  Running a job.
Build Systems Presentation December 14, 2015 Noon-1pm Kathy Lee Simunich Bldg. 203/ D120 Brought to you by: Argonne Java.
Software Deployment & Release 26/03/2015 1EN-ICE.
8/29/10 Maven Repository Management with Nexus Jim McMahon.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
CS520 Web Programming Introduction to Maven Chengyu Sun California State University, Los Angeles.
The Maven Alfresco SDK™ At the end of a journey, there is always a new beginning…
Maven and Jelly James Strachan. Introduction Maven and Jelly are both Apache projects at Jakarta Ultimately both will be top.
Anjana & Shankar September,2010 Introduction to Programming Tools.
Maven & NetBeans Platform. Agenda ● Maven NetBeans Platform Project Types ● Three NetBeans RCP project types ● Differences with Ant project types ● All.
Using NetBeans For Your Existing Projects Brian Leonard
Platform & Maven2 David Šimonek. Certified Engineer Course Agenda What is Maven? Why Maven? NB IDE & Maven NB Platform & Maven.
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
CS3220 Web and Internet Programming RESTful Web Service
Open-O Integration Project Introduction
with Some Eclipse Tricks included Safa Bacanlı Fall 16
CS520 Web Programming Introduction to Maven
Build Automation with Gradle
Plan What is Maven ? Links : mvn command line tool
Software Tango Meeting - May 2011 N. Leclercq on behalf of the SOLEIL Computing Team.
Bhavana Sudharshan Jaydeep Patel
Automatic RElease Service
Test Driven Development
Brian Leonard ブライアン レオナルド
prepared by hasan.we4tech.com
Project management and comprehension tool
Advanced Integration and Deployment Techniques
Chengyu Sun California State University, Los Angeles
X in [Integration, Delivery, Deployment]
Maven IIB9 Plug-in Version 9.0
With Some Eclipse Tricks included.
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
JENKINS TIPS Ideas for making your life with Jenkins easier
Maven IIB9 Plug-in Version 9.0
Escidoc build and development environment
CONTINUOUS INTEGRATION –WHY WE DO IT?
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
Continuous Integration
Building LabKey with Gradle
Presentation transcript:

Maven 04 March 2016 1 1

Introduction Java projects originally managed with Ant Manual build process Ant scripts to compile, generate IDL, jar Low-level scripting No dependency management No version management 2

Introduction Java projects originally managed with Ant Manual build process Ant scripts to compile, generate IDL, jar Low-level scripting No dependency management No version management Maven provides high-level features for build process 3

Maven vs Ant Ant originated from the Apache Tomcat project in early 2000 Individual build.xml No constraints on the build process Maven initial release in july 2004 Shared pom.xml Published on shared repositories Build process constrained Constraints on the sources: must follow locations: src/main/java, ... 4

Maven build lifecycle Artifact concept Java “package” to be deployed Different types of artifact (jar, war, plugin, …) Dependent lifecycle Phases for jar process-resources, compile, process-test- resources, test-compile, test, package, install, deploy Default behaviour 5

Maven dependencies All the dependencies are defined Example : <dependency> <groupId>avalon-framework</groupId> <artifactId>avalon-framework-impl</artifactId> <version>4.2.0</version> </dependency> Maven automatically updates and downloads the jar Manual update of the project must be done sometimes that is NOT update of the sources by SVN 6

Maven repositories Important concept of Maven Every artifact is published to a repository 4 types of repository Central Public Private Local 7

Maven repositories Nexus Repository ILL private https://maven.ill.fr/ Releases Snapshots Central mirror or proxy Thirdparty Compilation on the instruments Nexus users, right to publish snapshots, releases 8

Maven plugins A type of dependency Customize the build Examples Force compilation in Java 1.7 rather than default Incorporate SVN revision in jar Generate a single jar that contains all the dependencies Android support Share the code 9

Code versioning Every artifact has a version Nomad and NomadCommandSystem must be versioned Nomad and NomadCommandSystem can have dissociated versions Nomad can reference an older NomadCommandSystem Version strategy to be defined 10

Code versioning strategy Release vs Snapshot Deploy a release only once Deploy multiple snapshots during development Version deployment example 1.2.1 deployed 1.2.2-SNAPSHOT deployed … 1.2.2 deployed Changelog to be updated (ideally for each commit) 11

Code versioning strategy Version numbering Not important for an application (e.g. NomadGUI) Important for a library (e.g. NomadCommmandSystem) We can discuss it major.minor.revision 12

Profiles Possibility to define profiles Build for different platforms SWT profiles for GTK 32bits, GTK 64bits Default profile in .m2/settings.xml 13

Modules Maven own module concept A module inherits parent pom.xml Deployment can be independent Project NomadGUISpecialModules 14

Day to day usage Maven not required to run NomadGUI Maven required to compile NomadGUI, NomadCommandSystem, Cameo server and API Eclipse integration Command-line > mvn install > mvn -P gtk_linux_x86 install 15

Conclusion Maven has lots of features But with a well-defined organization, will bring more than it costs 16