SlideShare a Scribd company logo
1 of 47
Download to read offline
The Maven2 Revolution

                              A new approach to project
                                    development

                                                                   Dror Bereznitsky
                                                                           AlphaCSP




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar
Agenda


                • What is Maven?
                • Core Concepts of Maven 2
                        – Project Object Model
                        – The Build Lifecycle
                        – Maven Plugins
                        – The dependency Mechanism
                        – Repositories
                • Maven vs. Ant

Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 2
What is Maven ?




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar
A Build Survey



           How much time do you spend creating and
           managing your build files?
            How many times have you created a new
           build script from scratch?
            Can someone new to your project can
           immediately build, test, deploy it without
           looking at documentation?


Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 4
A Build Survey


       If you answered :
      1. Too much time
      2. More than I can remember
      3. No way
       you are probably not working with



Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 5
What is Maven?


    A new approach to project development
        • Configure your build don’t script it
        • Define what to build not how
        • Reuse of build logic
        •    Coherent Organization of Dependencies

      A development tool – not building blocks

Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 6
Maven’s Primary Goal


       What is Maven’s project goal ?

          Maven's primary goal is
          to allow a developer to
          understand the complete
          state of a project
          in the shortest period of time

Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 7
The Primary Goal ..

          The way to achieve this goal is:

          • Making the build process easy
          • Providing a uniform build system
          • Providing guidelines for
            best practices development
          • Providing quality project information


Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 8
Main Features


     • Superior dependency management
     • A large repository of libraries and metadata
     • Multiple projects handling
     • Extensible, easy to write plugins
     • Coherent site of project information
     • Release management and distribution
       publication
     • Multiple language support – C++, Java …


Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 9
Core Concepts of Maven 2




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar
Project Object Model


       Define What, not How
     • All the information required for the build is
       contained in a single POM,
       “Project Object Model”, XML file


     • The developer provides information about
           what                         is being built and not                  how

Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar         Page 11
Project Object Model ..


          The POM contains detailed METADATA
          information about the project:
                   – Versioning and configuration management
                   – Dependencies
                   – Project structure
                   – Application and testing resources


          And much more …

Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 12
A POM Example

  All the information required for the build in a single file
                    1        <project>
                    2            <modelVersion>4.0.0</modelVersion>
                    3            <groupId>com.alphacsp</groupId>
                    4            <artifactId>my-app</artifactId>
                    5            <packaging>jar</packaging>
                    6            <version>1.0-SNAPSHOT</version>
                    7            <dependencies>
                    8                <dependency>
                    9                    <groupId>junit</groupId>
                   10                    <artifactId>junit</artifactId>
                   11                    <version>3.8.1</version>
                   12                    <scope>test</scope>
                   13                </dependency>
                   14            </dependencies>
                   15        </project>


Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 13
The Super POM

          How this is possible using a 15 line file?

        • Maven's implicitly use its Super POM
        • Super POM carries with it all the default
          conventions that Maven encourages
        • Super POM is the parent of all POMs
        • Analog of the Java language's
          java.lang.Object class.


Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 14
The Super POM ..




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 15
Standard Directory Layout

        • A common directory
          layout –
          immediately feel at home
          in any Maven project
        • Based on best practices
        • Simplifies the POM
        • Can be created using
          Archetypes


Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 16
The Build Lifecycle


      • Software projects generally follow similar
        build paths: preparation, compilation,
        testing, packaging, installation, etc.

      • Maven2 is based around the central concept
        of a build lifecycle – the process for
        building and distributing a particular artifact
        is clearly defined


Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 17
Phases and Goals

          The build life cycle consists of a series of phases
          where each phase can perform one or more
          actions, or goals

                                                       compile                      test




                                              deploy                                 package


                                                                          install
Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar                  Page 18
The Build Lifecycle


      The lifecycle phase invokes the plugins it needs to
      complete its task and other dependant lifecycles




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 19
The 80/20 Rule


      • Using the default lifecycle mapping, Maven
        can build a basic project with little or no
        modification – 80% case
      • in certain circumstances, a project requires
        special tasks in order to build successfully
      • Maven can integrate these custom tasks
        into the build process through its
        extensible plugin framework.

Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 20
Maven Plugins

         Maven is actually a platform that executes
         plugins within a build life cycle in order to
         perform the build tasks




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 21
Maven Plugins ..


     • With most projects, the plugins provided
       “out of the box” by Maven are enough.
     • More plugins can be found at the Apache
       Maven Project and CodeHaus Mojo project.
     • If needed, you can write custom plugins to
       perform special build tasks.




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 22
Maven Mojo


   “mojo” – maven old java object

            • Plug-in developers only need to make
              their individual goal, “mojo”, perform a
              single task.

            • A “mojo” has a set of inputs and
              outputs.

            • Plug-ins consist of one or more “mojos”
Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 23
Mojo Example




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 24
Maven-Anno-Mojo

         Let you use java 5.0 annotations syntax
         instead of doclets for writing your mojos




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 25
Maven-Anno-Mojo ..



     • Inheritance between plugins
     • All the benefits of Java 5.0 – generics,
       autoboxing …
     • Delegation of execution to POJOs
     • Natural Ant java tasks integration – not XML
       based



Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 26
The Dependency Mechanism


    Maven excels in dependency management


             • Transitive dependencies
             • Dependency Scope
             • Dependency Management
             • Dependency exclusion


Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 27
The Dependency Mechanism ..


    Just Define your dependencies and forget about
    them - maven will do the rest for you:

            • Download the dependency
            • Resolve all transient dependencies
            • Add dependencies to compilation and test
              classpath/include path
            • Bundle dependencies when needed

Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 28
The Dependency Mechanism …




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 29
Maven 2 Repositories


   Maven repositories
   shares the same
   hierarchical structure
   that hold the build
   artifacts –
           •        Group
           •        Artifact
           •        Version



Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 30
Maven 2 Repositories ..


     There are two types of repositories:
     • Remote - any type of repository, accessed by a
       variety of protocols (file://, http://...).
       http://repo1.maven.org is the central repository

     • Local - a local cache of the
       remote downloads and the latest build artifacts
       Usually at : ${user.home}/.m2/repository



Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 31
Remote Repository




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 32
Local Repository




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 33
Site Generation


    Maven is famous for its
    Site generation that
    includes:
       a reference to the build
      server
       Javadoc
       source XRef
       issue tracking reference
       test and quality reports
Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 34
Site examples – code coverage




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 35
Site examples – Surefire report




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 36
Site – Custom Look & Feel




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 37
IDE Support


       Maven has some neat plug-ins for IDE project
       generation, including:

               – IntelliJ IDEA
               – Eclipse
               – Netbeans




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 38
IDE Support ..


     • The IDE projects created include:
              – All the dependencies 3rd party/internal
              – Dependency source linking


     • The created project is ready to compile, test
       , debug and run.



Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 39
Multiple Language Support

          • Maven supports
            multiple development
            languages such as
            Java , C++, C, C#,
            Fortran and more.
          • Different languages
            has their own
            common standard
            layout.

Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 40
Maven vs. Ant




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar
Maven vs. Ant

          OK, but Ant is working fine !

      •Ant provides building blocks for a toolset - Maven
      provides a working tool
      •Ant has no build lifecycle, repositories, standard
      project layout, dependency management …
      you have to do it by yourself !
      •Ant scripts become complex
      •Ant scripts are not reusable – promotes duplication
      •Ant is becoming legacy and not moving fast ahead
Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 42
MyApp – Ant Build File – 141 lines




                         141 Lines of code !!!




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 43
MyApp - Maven Build File – 17 lines


                                    17 Lines of code




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 44
Maven vs. Ant ..



                From our experience in Ant migration
                projects there is a 1:30 ratio in
                the number of lines of code
                between Maven2 and Ant.




Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 45
Your Turn Now




                                                Q&A

Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar   Page 46
Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar

More Related Content

What's hot

Introduction to Apache Maven
Introduction to Apache MavenIntroduction to Apache Maven
Introduction to Apache MavenRajind Ruparathna
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to MavenJoao Pereira
 
Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Johan Mynhardt
 
NetBeans Plugin Development Workshop
NetBeans Plugin Development WorkshopNetBeans Plugin Development Workshop
NetBeans Plugin Development Workshopelliando dias
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsJohn Ferguson Smart Limited
 
Becoming a Plumber: Building Deployment Pipelines - RevConf
Becoming a Plumber: Building Deployment Pipelines - RevConfBecoming a Plumber: Building Deployment Pipelines - RevConf
Becoming a Plumber: Building Deployment Pipelines - RevConfDaniel Barker
 
Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Bert Jan Schrijver
 
Becoming a Plumber: Building Deployment Pipelines - All Day DevOps
Becoming a Plumber: Building Deployment Pipelines - All Day DevOpsBecoming a Plumber: Building Deployment Pipelines - All Day DevOps
Becoming a Plumber: Building Deployment Pipelines - All Day DevOpsDaniel Barker
 
Microservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and JenkinsMicroservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and JenkinsRafael Benevides
 
What’s new in grails framework 5?
What’s new in grails framework 5?What’s new in grails framework 5?
What’s new in grails framework 5?Puneet Behl
 
Version Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version ControlVersion Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version ControlRevelation Technologies
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneyWeaveworks
 

What's hot (19)

Maven
MavenMaven
Maven
 
Introduction to maven
Introduction to mavenIntroduction to maven
Introduction to maven
 
Introduction to Apache Maven
Introduction to Apache MavenIntroduction to Apache Maven
Introduction to Apache Maven
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to Maven
 
Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)
 
Continuous delivery-with-maven
Continuous delivery-with-mavenContinuous delivery-with-maven
Continuous delivery-with-maven
 
Java Technology Trends
Java Technology TrendsJava Technology Trends
Java Technology Trends
 
NetBeans Plugin Development Workshop
NetBeans Plugin Development WorkshopNetBeans Plugin Development Workshop
NetBeans Plugin Development Workshop
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yards
 
Building with Gradle
Building with GradleBuilding with Gradle
Building with Gradle
 
Becoming a Plumber: Building Deployment Pipelines - RevConf
Becoming a Plumber: Building Deployment Pipelines - RevConfBecoming a Plumber: Building Deployment Pipelines - RevConf
Becoming a Plumber: Building Deployment Pipelines - RevConf
 
Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster
 
Becoming a Plumber: Building Deployment Pipelines - All Day DevOps
Becoming a Plumber: Building Deployment Pipelines - All Day DevOpsBecoming a Plumber: Building Deployment Pipelines - All Day DevOps
Becoming a Plumber: Building Deployment Pipelines - All Day DevOps
 
Maven basics
Maven basicsMaven basics
Maven basics
 
Microservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and JenkinsMicroservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and Jenkins
 
What’s new in grails framework 5?
What’s new in grails framework 5?What’s new in grails framework 5?
What’s new in grails framework 5?
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
 
Version Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version ControlVersion Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version Control
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
 

Similar to The Maven2 Revolution Project Development Approach

JSUG - Maven by Michael Greifeneder
JSUG - Maven by Michael GreifenederJSUG - Maven by Michael Greifeneder
JSUG - Maven by Michael GreifenederChristoph Pickl
 
SE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsSE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsAmr E. Mohamed
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1MD Sayem Ahmed
 
Hands on continouous delivery, I TAKE 2014
Hands on continouous delivery, I TAKE 2014Hands on continouous delivery, I TAKE 2014
Hands on continouous delivery, I TAKE 2014Ioan Eugen Stan
 
Maven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable ResultsMaven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable ResultsSteve Keener
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 featuresAngel Ruiz
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1360|Conferences
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Martin Bergljung
 
ONAP on Vagrant for ONAPers
ONAP on Vagrant for ONAPersONAP on Vagrant for ONAPers
ONAP on Vagrant for ONAPersVictor Morales
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to MavenSperasoft
 
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Lecture 8 - Qooxdoo - Rap Course At The University Of SzegedLecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Lecture 8 - Qooxdoo - Rap Course At The University Of SzegedFabian Jakobs
 

Similar to The Maven2 Revolution Project Development Approach (20)

JSUG - Maven by Michael Greifeneder
JSUG - Maven by Michael GreifenederJSUG - Maven by Michael Greifeneder
JSUG - Maven by Michael Greifeneder
 
SE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsSE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-Tools
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1
 
ONAP on Vagrant
ONAP on VagrantONAP on Vagrant
ONAP on Vagrant
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
Maven
MavenMaven
Maven
 
Hands on continouous delivery, I TAKE 2014
Hands on continouous delivery, I TAKE 2014Hands on continouous delivery, I TAKE 2014
Hands on continouous delivery, I TAKE 2014
 
Maven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable ResultsMaven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable Results
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 features
 
Maven
MavenMaven
Maven
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
What is maven
What is mavenWhat is maven
What is maven
 
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
 
Maven.pptx
Maven.pptxMaven.pptx
Maven.pptx
 
java new technology
java new technologyjava new technology
java new technology
 
Real World Technologies
Real World TechnologiesReal World Technologies
Real World Technologies
 
ONAP on Vagrant for ONAPers
ONAP on Vagrant for ONAPersONAP on Vagrant for ONAPers
ONAP on Vagrant for ONAPers
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to Maven
 
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Lecture 8 - Qooxdoo - Rap Course At The University Of SzegedLecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
 

More from elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

More from elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Recently uploaded

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Recently uploaded (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

The Maven2 Revolution Project Development Approach

  • 1. The Maven2 Revolution A new approach to project development Dror Bereznitsky AlphaCSP Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar
  • 2. Agenda • What is Maven? • Core Concepts of Maven 2 – Project Object Model – The Build Lifecycle – Maven Plugins – The dependency Mechanism – Repositories • Maven vs. Ant Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 2
  • 3. What is Maven ? Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar
  • 4. A Build Survey How much time do you spend creating and managing your build files? How many times have you created a new build script from scratch? Can someone new to your project can immediately build, test, deploy it without looking at documentation? Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 4
  • 5. A Build Survey If you answered : 1. Too much time 2. More than I can remember 3. No way you are probably not working with Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 5
  • 6. What is Maven? A new approach to project development • Configure your build don’t script it • Define what to build not how • Reuse of build logic • Coherent Organization of Dependencies A development tool – not building blocks Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 6
  • 7. Maven’s Primary Goal What is Maven’s project goal ? Maven's primary goal is to allow a developer to understand the complete state of a project in the shortest period of time Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 7
  • 8. The Primary Goal .. The way to achieve this goal is: • Making the build process easy • Providing a uniform build system • Providing guidelines for best practices development • Providing quality project information Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 8
  • 9. Main Features • Superior dependency management • A large repository of libraries and metadata • Multiple projects handling • Extensible, easy to write plugins • Coherent site of project information • Release management and distribution publication • Multiple language support – C++, Java … Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 9
  • 10. Core Concepts of Maven 2 Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar
  • 11. Project Object Model Define What, not How • All the information required for the build is contained in a single POM, “Project Object Model”, XML file • The developer provides information about what is being built and not how Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 11
  • 12. Project Object Model .. The POM contains detailed METADATA information about the project: – Versioning and configuration management – Dependencies – Project structure – Application and testing resources And much more … Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 12
  • 13. A POM Example All the information required for the build in a single file 1 <project> 2 <modelVersion>4.0.0</modelVersion> 3 <groupId>com.alphacsp</groupId> 4 <artifactId>my-app</artifactId> 5 <packaging>jar</packaging> 6 <version>1.0-SNAPSHOT</version> 7 <dependencies> 8 <dependency> 9 <groupId>junit</groupId> 10 <artifactId>junit</artifactId> 11 <version>3.8.1</version> 12 <scope>test</scope> 13 </dependency> 14 </dependencies> 15 </project> Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 13
  • 14. The Super POM How this is possible using a 15 line file? • Maven's implicitly use its Super POM • Super POM carries with it all the default conventions that Maven encourages • Super POM is the parent of all POMs • Analog of the Java language's java.lang.Object class. Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 14
  • 15. The Super POM .. Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 15
  • 16. Standard Directory Layout • A common directory layout – immediately feel at home in any Maven project • Based on best practices • Simplifies the POM • Can be created using Archetypes Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 16
  • 17. The Build Lifecycle • Software projects generally follow similar build paths: preparation, compilation, testing, packaging, installation, etc. • Maven2 is based around the central concept of a build lifecycle – the process for building and distributing a particular artifact is clearly defined Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 17
  • 18. Phases and Goals The build life cycle consists of a series of phases where each phase can perform one or more actions, or goals compile test deploy package install Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 18
  • 19. The Build Lifecycle The lifecycle phase invokes the plugins it needs to complete its task and other dependant lifecycles Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 19
  • 20. The 80/20 Rule • Using the default lifecycle mapping, Maven can build a basic project with little or no modification – 80% case • in certain circumstances, a project requires special tasks in order to build successfully • Maven can integrate these custom tasks into the build process through its extensible plugin framework. Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 20
  • 21. Maven Plugins Maven is actually a platform that executes plugins within a build life cycle in order to perform the build tasks Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 21
  • 22. Maven Plugins .. • With most projects, the plugins provided “out of the box” by Maven are enough. • More plugins can be found at the Apache Maven Project and CodeHaus Mojo project. • If needed, you can write custom plugins to perform special build tasks. Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 22
  • 23. Maven Mojo “mojo” – maven old java object • Plug-in developers only need to make their individual goal, “mojo”, perform a single task. • A “mojo” has a set of inputs and outputs. • Plug-ins consist of one or more “mojos” Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 23
  • 24. Mojo Example Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 24
  • 25. Maven-Anno-Mojo Let you use java 5.0 annotations syntax instead of doclets for writing your mojos Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 25
  • 26. Maven-Anno-Mojo .. • Inheritance between plugins • All the benefits of Java 5.0 – generics, autoboxing … • Delegation of execution to POJOs • Natural Ant java tasks integration – not XML based Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 26
  • 27. The Dependency Mechanism Maven excels in dependency management • Transitive dependencies • Dependency Scope • Dependency Management • Dependency exclusion Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 27
  • 28. The Dependency Mechanism .. Just Define your dependencies and forget about them - maven will do the rest for you: • Download the dependency • Resolve all transient dependencies • Add dependencies to compilation and test classpath/include path • Bundle dependencies when needed Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 28
  • 29. The Dependency Mechanism … Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 29
  • 30. Maven 2 Repositories Maven repositories shares the same hierarchical structure that hold the build artifacts – • Group • Artifact • Version Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 30
  • 31. Maven 2 Repositories .. There are two types of repositories: • Remote - any type of repository, accessed by a variety of protocols (file://, http://...). http://repo1.maven.org is the central repository • Local - a local cache of the remote downloads and the latest build artifacts Usually at : ${user.home}/.m2/repository Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 31
  • 32. Remote Repository Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 32
  • 33. Local Repository Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 33
  • 34. Site Generation Maven is famous for its Site generation that includes: a reference to the build server Javadoc source XRef issue tracking reference test and quality reports Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 34
  • 35. Site examples – code coverage Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 35
  • 36. Site examples – Surefire report Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 36
  • 37. Site – Custom Look & Feel Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 37
  • 38. IDE Support Maven has some neat plug-ins for IDE project generation, including: – IntelliJ IDEA – Eclipse – Netbeans Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 38
  • 39. IDE Support .. • The IDE projects created include: – All the dependencies 3rd party/internal – Dependency source linking • The created project is ready to compile, test , debug and run. Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 39
  • 40. Multiple Language Support • Maven supports multiple development languages such as Java , C++, C, C#, Fortran and more. • Different languages has their own common standard layout. Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 40
  • 41. Maven vs. Ant Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar
  • 42. Maven vs. Ant OK, but Ant is working fine ! •Ant provides building blocks for a toolset - Maven provides a working tool •Ant has no build lifecycle, repositories, standard project layout, dependency management … you have to do it by yourself ! •Ant scripts become complex •Ant scripts are not reusable – promotes duplication •Ant is becoming legacy and not moving fast ahead Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 42
  • 43. MyApp – Ant Build File – 141 lines 141 Lines of code !!! Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 43
  • 44. MyApp - Maven Build File – 17 lines 17 Lines of code Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 44
  • 45. Maven vs. Ant .. From our experience in Ant migration projects there is a 1:30 ratio in the number of lines of code between Maven2 and Ant. Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 45
  • 46. Your Turn Now Q&A Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar Page 46
  • 47. Copyright AlphaCSP Israel 2006 - The Ultimate Development Environment Seminar