Working with Apache Maven

Automating Builds with Apache Maven Training

The Working with Apache Maven training course teaches developers the skills and knowledge needed to use Maven as an automated build tool. The course begins with an overview of automated build concepts and motivations. It then moves into a discussion about Maven as a build tool, in terms of its architecture, implementation, and operation. With the foundation laid, the course then examines how to setup an Maven2 pom.xml file, project configuration, and task execution. The course concludes with a discussion of common Maven tasks, like continuous integration tasks, packaging tasks, etc.

This course assume students are familiar with both Java and XML concepts.

Course Summary

Purpose: 
Learn how to use Apache Maven as your automated build tool
Audience: 
Developers working on projects that use Maven as an automated build tool.
Skill Level: 
Learning Style: 

Hands-on training is customized, instructor-led training with an in-depth presentation of a technology and its concepts, featuring such topics as Java, OOAD, and Open Source.

Hands On
Duration: 
2 Days
Working with Apache Maven is part of the Apache Training curriculum.

What You'll Learn

In the Working with Apache Maven training course you’ll learn:

  • An Introduction to Maven
    • Key Features of Maven
    • History of Maven
    • Alternatives to Maven
    • Comparing Maven and Ant
  • Installing Maven
    • Maven Directory
    • Maven Settings (Local and Global)
    • Local Maven Repository
    • Running Maven
    • Maven Options
  • Core Concepts
    • Maven Directory Structure
    • Standard Maven Lifecycle
    • Key Lifecycle Phases
    • Customizing the Lifecycle
    • Lifecycle Overview
    • Default Lifecycle
    • Site Lifecycle
    • Package-specific Lifecycles
  • Maven Plugins and Goals
    • Maven Coordinates
    • Dependency Management
    • Maven Repositories
    • Maven Archetypes
  • Project and Dependencies
    • The Project Object Model (POM)
    • The Simplest POM
    • POM Components
    • Project Coordinates
    • GAV (Group, Artifact, Version)
    • Project Versions
    • Snapshot Versions
  • Dependencies
    • Dependency Scope
    • Optional Dependencies
    • Version Ranges
    • Transitive Dependencies
    • Visualizing Dependencies
    • Dependency Conflicts
    • Excluding Transitive Dependencies
  • POM Inheritance and Aggregation
    • POM Inheritance
    • The Super POM
    • Inherited Behavior
    • The Effective POM
    • Multi- Projects
    • Directory Structure
    • Container Projects
    • POM Aggregation
  • Custom Builds
    • Properties and Profiles
    • Variables
    • POM Variables
    • settings.xml properties
    • Java System properties
    • Environment variables
    • User-defined properties
    • Filtering Resources
    • Build Profiles
    • Project Configuration with Profiles
    • Profile Activation
    • Maven Repositories
    • Repository Structure
    • Central Repository
    • Other Remote Repositories
    • Local Repository
    • Site Generation and Reporting
    • Demonstration
  • Consistent Builds
    • Standardized Environment
    • Explicit Use of Plugin Versions
    • The Enforcer Plugin
  • Site Generation with Maven
    • Maven Site as Collaboration Tool
    • The Site Lifecycle
    • Default Site Layout
    • Creating a Site Project
    • Organizing Your Site
    • Adding Site Content
  • Site Reporting with Maven
    • Technical Documentation
    • Browsable Source Code
    • Displaying Test Results
    • Code Quality Metrics
  • Web Development
    • Using the Maven Jetty Plugin
    • Developing Web Applications with Maven
  • Repository Management
    • What is an Enterprise Repository?
    • Nexus Repositories and Security
    • Deploying to Nexus with Maven
    • Managing Maven Settings with Nexus
    • Configuring Procurement in Nexus
    • Performing a Staged Release
  • Release Management
    • Release Management
    • The Maven Release Plugin
    • Developer Release Workflow
    • Integration with Source Control
    • Example Using Subversion
  • Continuous Integration with Bamboo
    • What is Continuous Integration?
    • Benefits of Continuous Integration
    • Comparisons of Bamboo to other CI Servers/Products
    • Setting Up a Maven Job in Bamboo
    • Monitoring Bamboo Builds
    • Demonstration of Bamboo

Meet Your Instructor

Kelby Zorgdrager

Kelby Zorgdrager, is the President and Founder of DevelopIntelligence.

Kelby, a serial entrepreneur, has started 2 successful businesses in his career. Much of his career has been focused on leveraging technologies to create robust, scalable, and extensible solutions. Kelby has held just about every position possible in the technology world, from tech support to CTO. Kelby's expertise in Java, Open Source, and software development, have allowed him to be a guest speaker at JavaOne, Java University, Comdex,...

Meet Kelby Zorgdrager »
Michael McClure

Michael McClure is a practicing software developer, course developer, and trainer with DevelopIntelligence. For the majority of his career, Michael has been designing and implementing large-scale, enterprise-grade Java-based applications at major telecommunication and internet companies such as Level3 Communications, US West/Qwest/Century Link, Orbitz, and others.

Michael has a passion for learning new technologies / patterns / paradigms. (Or, he has a tendency to get bored or disappointed with current...

Meet Michael McClure »

Resources

Suggested Reference Texts: 

Develop Your Intelligence

Contact us to begin the personalization process.

We'll work with you to design a personalized,
relevant learning solution that's budget friendly.

Questions? Answered.

Problem? Solved.


They Liked Us.




You will too.

Learn About The DI Way

Everyone learns more when it's personally relevant. Yes - It's that simple!

Contact Us

Contact DevelopIntelligence

Please fill out the information below to have a DevelopIntelligence Learning Solutions Architect contact you within 1-business day. If you would like immediate live help, please call (877) 629-5631.

Because we value your privacy, we don’t share your information. We’ll only use it to help you find the best personally relevant learning solution.

Need help finding the right learning solution? Call us: 877-629-5631