WA2308: Continuous Integration with Maven, Jenkins and Artifactory Training

מק"ט: #6936 | משך קורס: 24 שעות אק'

This course will provide students with an understanding of  the Apache Maven build process, the principles of continuous integration, and the knowledge of how to implement continuous integration with automated test execution using Jenkins, Maven, and the Artifactory repository manager. Students will use a local copy of Jenkins and to create and run Maven jobs, link to a version control system, run automated testing and generate development reports, and configure the system to log build reports and generated artifacts to an Artifactory repository.

הקורס פעיל לקבוצות מטעם ארגונים בלבד, ניתן לשלוח פנייה רק אם מדובר בקבוצה
*שדות חובה


Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, current Jenkins focuses on the following two jobs:

  • Building/testing software projects continuously.  Jenkins provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continuous build increases development productivity.

Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine. For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them diligently and notice when it broke. Jenkins keeps those outputs and makes it easy for you to notice when something is wrong.


  • Download and install Maven
  • Build a project
  • Work with Maven's directory structure, plugins, repositories, and more
  • Understand the Project Object Model (POM)
  • Build a complete web application using Maven
  • Build and activate profiles
  • Use Maven from Eclipse via the m2eclipse plugin
  • Install and configure Jenkins in a servlet container
  • Create Jenkins builds
  • Configure and use Apache Ant and Apache Maven with Jenkins
  • Use Jenkins to generate Java coding standards reports, code coverage reports, and change notices
  • Use Jenkins to automatically deploy software into a testing environment.
  • Configure Maven and Jenkins to deploy the generated artifacts to Artifactory

קהל יעד

This course is targeted to developers who will implement Continuous Integration using Maven, Jenkins and the Artifactory repository manager.  Students learn to create Maven projects, configure Jenkins to build those projects, and manage the artifacts using Artifactory.

תנאי קדם

Attendees should have familiarity Java development practices


Introducing Continuous Integration and Jenkins

  • Agile Development
  • Continuous Integration
  • History of Jenkins
  • State of the Jenkins community

Introducing Maven

  • Why Maven
  • Convention over Configuration
  • Key Features of Maven
  • Alternatives to Maven

Installing and Running Jenkins

  • Running Jenkins from the jar file
  • Installing Jenkins in a servlet container
  • Setup Security
  • Email and Version Control
  • Master/slave configurations


Installing and Running Maven

  • Downloading Maven
  • Installing Maven
  • Local Maven Repository
  • Testing The Maven Installation
  • Getting Help

Getting Started

  • Building a Project
  • Source Directory Structure
  • Standard Maven Lifecycle
  • Maven Plugins and Goals
  • Maven Coordinates
  • Dependency Management
  • Maven Repositories
  • Maven Archetypes

Project and Dependencies

  • The Project Object Model (POM)
  • Project Coordinates
  • Dependencies
  • Dependency scopes
  • Managing dependencies – inclusion/exclusion
  • POM Inheritance and Aggregation
  • Multi-Module Projects

Creating a project with Maven

  • Creating the Project Object Model from scratch
  • Using Project Archetypes
  • Creating Maven-based projects in Eclipse

A Web Application in Maven

  • Creating the Web Project
  • Configuring the Jetty Plugin
  • Working with Servlets
  • Adding Dependencies

Commonly-used plugins

  • Overview of Maven plugins
  • Finding information on plugins
  • Installing plugins
  • Configuring plugins
  • Binding plugin executions to the build lifecycle

Basic Build Profiles

  • Activating Profiles
  • Profiles and Portability

A Jenkins Job

  • Creating a job
  • Configure a job
  • Run a job manually
  • Run a job when source code is checked into version control
  • Run a job on a regular schedule

Multi-Module Builds

  • Project Aggregation
  • Project Inheritance

POM Projects

  • Standardizing dependency sets
  • Creating a POM project
  • Packaging a POM project

Writing Plugins

  • The Plexus IOC Container
  • MOJO’s
  • Plugin Dependencies
  • Creating a plugin’s LifeCycle
  • Overriding the default LifeCycle
  • Packaging your plugin

Creating Archetypes

  • Why Archetypes?
  • Using an Archetype
  • Create an archetype from an existing project
  • Create an archetype using an archetype
  • Publishing an archetype

Repository Management

  • Purpose of an external repository
  • The Software Development Life Cycle
  • Managing releases through a repository
  • Repositories available
  • Staging Repository
  • QA and Promotion

Release Management

  • Cutting a release
  • Repository Management
  • Deploying to a repository
  • Snapshots and Releases

Advanced Jenkins

  • Monitoring External jobs
  • Distributed builds
  • File fingerprint tracking
  • Using Jenkins for non-Java projects
  • Matrix projects
  • Splitting a big job into smaller jobs

Jenkins Plugins

  • Change reporting
  • Code coverage
  • Static Analysis
  • Performance reporting
  • Style checking

Best Practices for Jenkins