Upgrade to Pro — share decks privately, control downloads, hide ads and more …

An introduction to Apache Maven

An introduction to Apache Maven

A short introduction to Apache Maven, what is it and how is it used for Java based builds.
How does it work and what other tools are used ?

Mike Frampton

December 21, 2013
Tweet

More Decks by Mike Frampton

Other Decks in Technology

Transcript

  1. Apache Maven • What is it ? • How does

    it work ? • Why use it ? • Structure • Usage • Examples www.semtech-solutions.co.nz [email protected]
  2. Apache Maven – What is it ? • A build

    automation tool • Mainly for Java projects • Uses conventions for build structure / procedure • Licensed by Apache • Developed via Jakarta project • Stores libraries and plugins in a central repository www.semtech-solutions.co.nz [email protected]
  3. Apache Maven – How does it work ? • Build

    controlled via pom.xml project file • POM = Project Object Model • Uses standard build order, directories, plugins • Identifies dependencies in the pom.xml • One POM can call child POM's • It makes the build easier • Provides uniformity www.semtech-solutions.co.nz [email protected]
  4. Apache Maven – Why use it ? • Remove complexity

    from the build process • Use a uniform process • Make the build repeatable • Make the build consistent with other projects • Provides a controlled release process • Manages depedencies www.semtech-solutions.co.nz [email protected]
  5. Apache Maven – Structure Using Maven 0.9 as an example

    – the structure of the Maven directories www.semtech-solutions.co.nz [email protected]
  6. Apache Maven – Usage In terms of usage most estimates

    seem to agree – Maven / Ant / Eclipse are the most used www.semtech-solutions.co.nz [email protected]
  7. Apache Maven – Example Taking the build of hadoop-2.0.6-alpha as

    an example – A parent pom.xml calls module hadoop-project <modules> <module>hadoop-project</module> <module>hadoop-project-dist</module> <module>hadoop-assemblies</module> – Identifies plugins <plugin> <groupId>com.atlassian.maven.plugins</groupId> <artifactId>maven-clover2-plugin</artifactId> <version>3.0.5</version> </plugin> www.semtech-solutions.co.nz [email protected]
  8. Apache Maven – Example Taking the build of hadoop-2.0.6-alpha as

    an example – A child pom.xml – defines properties <properties> <failIfNoTests>false</failIfNoTests> <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile> – Identifies dependencies <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-util</artifactId> <version>6.1.26</version> </dependency> – Defines profiles – Defines plugins – Defines the Build www.semtech-solutions.co.nz [email protected]
  9. Contact Us • Feel free to contact us at –

    www.semtech-solutions.co.nz – [email protected] • We offer IT project consultancy • We are happy to hear about your problems • You can just pay for those hours that you need • To solve your problems