AM-103: Maven QuickStart: Getting started with Maven

WorkShop Overview

Produced by the ArcMind team. After completing this course you will have the skills to build applications with Maven.

Length

2 day, 3 day and 4 day versions of the course

Course Abstract:

Maven is a Java build tool that does project management. Maven produces builds, documentation, source metrics, and source cross-references. Look here to see the full list of Maven's features.

Maven endeavors to simplify builds by providing a project structure, development processes, and generate coherent project documentation. The documentation provides feedback on the quality of the project. By automating common project documents, Maven encourages the production of those documents.

Instead of copy and past reuse as found with Ant. Maven provides a plugin architecture, where you can reuse common targets called goals. Maven is compatible with Ant. You can use Ant syntax and tasks inside of Maven.

Outline

Day 1

  1. Introduction to Maven
    1. Maven Technology Benefits
    2. Maven Architecture Overview
    3. Understanding Plugins
    4. Local and Remote Repos
  2. Creating your first simple application with Maven
    1. Understanding POM
    2. Managing dependencies
    3. Common goals
    4. Using Maven genapp to create simple jar
    5. Lab 1: simple jar
  3. Using generated Artifacts
    1. Installing your application jar in the local maven repo
    2. Using the jar from another application
    3. Lab 2: using jar in another project
  4. Using Maven reports
    1. Setting up reports (junit, javadocs)
    2. Lab 3: Setting up common reports
    3. Maven CVS integration
    4. Lab 4: Reporting on project activity
    5. Configuring Checkstyle with Maven
    6. Lab 5: Generating checkstyle reports

Day 2

  1. Multi-project support
    1. Extending a project
    2. Using multiproject support
    3. Lab 6: creating complex set of projects
  2. Working with Snapshots
    1. Generating snapshots
    2. Using snapshots
    3. Following a snapshot
    4. Lab 7: Generating a snapshot
    5. Lab 8: Using a snapshot
  3. Goal (Post and Pre), Maven and Ant
    1. Goals (Pre and Post)
    2. Using Ant standard tasks in Maven.xml
    3. Importing other Ant tasks in Maven.xml
    4. Lab 9: Modifying Maven.xml to auto deploy

Day 3

  1. Building WebApps
    1. Using Maven's webapp support (war goal)
    2. XDoclet support for Web apps
    3. Lab 10: Creating web applications
  2. Building EJBs
    1. Using Maven's EJB support
    2. XDoclet support for EJB
    3. Lab 11: Creating EJB jar files
  3. Building EAR files
    1. Using Maven's EAR support
    2. Lab 12: Creating an EAR consisting of a EJB JAR and a WAR
  4. Creating custom documentation with XDoc
    1. Creating custom documentation
    2. Lab 13: Generating custom documentation with XDoc
  5. Using Advanced Maven reports
    1. Setting up and using PMD
    2. Lab 14: Generating PMD report
    3. Setting up and using Simian
    4. Lab 15: Generating Simian report
    5. Performing Code coverage
    6. Lab 16: Generating code coverage reports

Day 4

  1. Maven AppServer plugin
    1. Deploying, installing, cleaning enterprise applications
    2. Starting and stopping application server
    3. Lab 17: Using AppServer plugin
  2. Creating a new Maven plugins
    1. Understanding Maven plugin development
    2. Writing your first plugin
    3. Lab 18: Writing your first plugin
    4. Writing Maven tags
    5. Lab 19: Writing Maven tags