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

Slides:



Advertisements
Similar presentations
Apache Maven: J2EE Front to Back Jesse McConnell -
Advertisements

IcePro Source Code Management Source code analysis Runtime analysis Application deployment Source code generation Multi sites Click ! IcePro.
OpusCollege and Spring-DM. OSGi based web applications – three strategies OSGi container embedded in another container: OSGi Bridge Server (OBS)  e.g.
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.
ANT: Another Nice Tool Ali Beyad October 1, 2003.
ANT: Another Nice Tool Ali Beyad October 1, 2003.
Developing CAS in Eclipse
Java Build Tool Comparison HJUG - April 29th, 2009 John Tyler.
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.
Introduction to Java.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Spring Roo CS476 Aleksey Bukin Peter Lew. What is Roo? Productivity tool Allows for easy creation of Enterprise Java applications Runs alongside existing.
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.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
AUTOBUILD Build and Deployment Automation Solution.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Project Source Code Structure and Build Process ● Remember consistency matters as source code structure, build process, and release processes are all intertwined.
COMP-14: Automating your deployments using ANT Gary S Clink Business Consultant.
LDS Account Integration. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions Prerequisites:
AUTOBUILD Build and Deployment Automation Solution.
Apache Ant A gateway to test-driven Java development.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
INFSO-RI JRA2: Testing senarious ETICS AH meeting Budapest, Iune 2009 Eva Takacs, Jozsef Kuti, András Milassin 4D Soft.
July 2011CMSC 341 CVS/Ant 1 CMSC 341 Java Packages Ant CVS Project Submission.
Ant & Jar Ant – Java-based build tool Jar – pkzip archive, that contains metadata (a manifest file) that the JRE understands.
14 June 2004System-wide Services: User InterfaceRich Moeser 1 EVLA Overall Software Design Final Internal Review System-wide Services: User Interface.
Distributed Java Programming Build Management  A repeatable build management process allows you to integrate the development efforts of your team.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Software Development COMP220/COMP285 Seb Coope Introducing Ant These slides are mainly based on “Java Development with Ant” - E. Hatcher & S.Loughran.
14th Oct 2005CERN AB Controls Development Process of Accelerator Controls Software G.Kruk L.Mestre, V.Paris, S.Oglaza, V. Baggiolini, E.Roux and Application.
GLite build and integration system Building and Packaging Robert HARAKALY
CERN IT Department t LHCb Software Distribution Roberto Santinelli CERN IT/GS.
Maven for building Java applications By Nalin De Zoysa
Surya Bahadur Kathayat Outline  Ramses  Installing Ramses  Ramses Perspective (Views and Editors)  Importing/Exporting Example.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
UAB Versioning: Definition 1 07/05/2014. Summary UAB component definition UAB component release UAB component query UAB component installation Create.
Ant / continuous integration. Turning Client Vision into Results 2 Outline presentation Introduction Ant –History –Concepts –Tasks –Examples –Extending.
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.
PROG Object Oriented Programming II PROG Object Oriented Programming II Application Deployment.
D4Science and ETICS Building and Testing gCube and gCore Pedro Andrade CERN EGEE’08 Conference 25 September 2008 Istanbul (Turkey)
Test Automation Using Selenium Presented by: Shambo Ghosh Ankit Sachan Samapti Sinhamahapatra Akshay Kotawala.
(1) Code Walkthrough robocode-pmj-dacruzer Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
GLite build and integration system Building and Packaging Robert HARAKALY
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
Introduction to Programming 1 1 2Introduction to Java.
CS520 Web Programming Introduction to Maven Chengyu Sun California State University, Los Angeles.
16 Copyright © 2004, Oracle. All rights reserved. Testing the Migrated Oracle Database.
An Introduction to Ant. What is Ant? How do you use it? Why would you want to?
Maven and Jelly James Strachan. Introduction Maven and Jelly are both Apache projects at Jakarta Ultimately both will be top.
Platform & Maven2 David Šimonek. Certified Engineer Course Agenda What is Maven? Why Maven? NB IDE & Maven NB Platform & Maven.
Open-O Integration Project Introduction
Maven 04 March
CS520 Web Programming Introduction to Maven
Plan What is Maven ? Links : mvn command line tool
Brian Leonard ブライアン レオナルド
prepared by hasan.we4tech.com
Escidoc build and development environment
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
Java Code Review with CheckStyle
Software Engineering and Architecture
Presentation transcript:

Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene

History Make – Not the best tool for building Java projects  Platform-dependent  Not easy to use Ant – A revolutionary build tool Platform-independent Uses XML configuration file (build.xml)‏  XML configuration file is extremely abstract  High learning curve (syntax)‏ Maven 1.0 – Replacement for Ant?  Uses Ant at its core

Features Standardized project layout and project structure generator Standardized dependency-management mechanism Multiple project support Instant downloads of new plug-ins and features as the developer needs them Website generation for up-to-date project information

Project Object Model (POM)‏ The POM file is a set of instructions for Maven that tells it how to build the project and includes other special instructions The POM takes the form of an XML file (pom.xml)‏ Maven includes the JUnit dependency by default to encourage unit testing

Dependency Management Transitive Dependencies Maven will take care of the libraries that your libraries need Dependency Scopes compile: Available in all phases (default value)‏ provided: Used to compile the application but will not be deployed runtime: Needed only for execution and not for compilation (eg: JDBC drivers)‏ test: Needed only to compile and run tests (eg: JUnit)‏

Structure src/main/java: Java source code src/main/resources: Other resources src/main/filters: Resource filters in the form of properties files, which may be used to define variables only known at runtime src/main/config: Configuration files src/main/webapp: The Web application directory for a WAR project

Structure src/test/java: Unit tests src/test/resources: Resources to be used for unit tests, but will not be deployed src/test/filters: Resource filters to be used for unit tests, but will not be deployed src/site: Files used to generate the Maven project Website

Project Life Cycle Default Build Phases validate: Validate the project is correct and all necessary information is available compile: Compiles project source code test: Test the compiled source code using a suitable unit testing framework such as JUnit. These tests should not require the code be packaged or deployed package: Take the compiled code and package it in its distributable format, such as a WAR, JAR etc.

Project Life Cycle Default Build Phases integration-test: Process and deploy the package if necessary into an environment where integration tests can be run verify: Run any checks to verify the package is valid and meets quality criteria install: Install the package into the local repository, for use as a dependency in other projects locally deploy: Copies the final package to the remote repository for sharing with other developers and projects (done in an integration or release environment).

Maven Site Generation Build Phase site: Generates the project website Project Management Reports General project information (source repositories, defect tracking, team members, etc.)‏ Unit test and test coverage reports (Corbetura plug-in)‏ Automatic code reviews (Checkstyle plug-in)‏ Configuration and version information Dependencies Java-docs Source code in indexed and cross-referenced HTML format Team member list

Conclusion Maven 2.0 is... A powerful tool that greatly simplifies and standardizes the build process Promotes a standard project outline and incorporates recommended best practices Standard plug-ins such as the site generator provide valuable team-oriented project tools with little extra effort