Some time ago I was asked if I would like to write a review about one of the new video courses from Packt Publishing. It was "Getting Started with Apache Maven" by Russell Gold and since I have been using Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM">Maven for some years now (since 2007) and did publish some articles myself, I thought it would be nice to help them promote Apache Maven.

The course is organized in eight chapters, forty videos with a length between two and five minutes, for a total length of two hours. The aim of the course is to provide the shortest path to use effectively Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM">Maven

You can download the course as a single zip file. After unpacking the file to a local hard disk you find a user guide, support information, a reference to the code examples and the video files. As you may notice I said "reference to the code examples". Even if the name of the file "Code" it contains only a file with the link to the source code on github.

Each section is around twenty minutes and is again divided into four to six single videos. This makes it very easy to follow the course since you get small pieces to understand and make them watchable during your commuting. If you have a problem understanding the content you can just start over the video and do not have to navigate in a long video.

There is eight sections starting with the installation followed by typical maven topics like dependencies, plugins, reports and the release process.

In the first section you get a small info about the installation process and an overview about two main topics of Maven: repository and lifecycle. At first the lifecycle looks very complicated but in the following sections help to understand the concept behind this.

The next sections deal with the dependency handling, plugins, properties and reports. With this knowledge you have everything to set up a small project and get an idea how to change the build process.

The section six handles the release process and the work to do if you want to publish to Maven Central. The final two sections deal with multi module projects and some additional topics (interaction with ant, functional testing etc.). In these last sections the presentation of facts is much faster. For someone really starting with Maven this may be too much information for the first time.

Overall these video are  a really good introduction to Apache Maven and its vocabulary.

  1. Introduction [18:29 minutes]
    • Introduction to Apache Maven
    • Installing Apache Maven
    • Understanding the Maven Repository
    • Understanding the Maven Lifecycle
    • Understanding the Role of Plugins
  2. Dependencies [14:25 minutes]
    • Introducing Maven Dependencies
    • Controlling Maven Class paths
    • Maven and Transitive Dependencies
    • Managing Dependencies that All Projects Need – Part 1
    • Managing Dependencies that All Projects Need – Part 2
  3. Plugins [16:14 minutes]
    • Introducing Maven Plugins
    • Adding Steps to a Maven Build
    • Code Generation
    • Managing Plugins with a Parent POM
    • Finding Available Plugins
  4. Controlling the Build [17:16 minutes]
    • Maven Build Properties
    • Maven Profiles
    • Profile Activation via Properties
    • Profile Activation via Environment
    • User Settings, Profiles and Repositories
  5. The Project Website [18:14 minutes]
    • The Basic Website and Reports
    • Using Report Plugins
    • Creating Custom Pages
    • FAQ (frequently asked question) Pages and Site Appearance
    • Deploying to a Web Server
  6. The Maven Release Process [18:40 minutes]
    • Deploying to a Repository
    • Using Snapshots
    • Preparing for a Release
    • Releasing Maven Artifacts
    • Preparing for an Open Source Release
    • Publishing to Maven Central
  7. Multi-module Projects [12:42 minutes]
    • Understanding the Multi-module Project
    • Incremental Building with Multiple Modules
    • Building a Website for a Multi-module project
    • Releasing the Multi-module Project
  8. Maven Tricks and Patterns [19:47 minutes]
    • Invoking Ant from Maven
    • Accessing Maven Artifacts from Ant
    • Building a Simple Installer
    • Running Functional Tests
    • Disabling Default Plugin Bindings and Excluding Transitive Dependencies


Some more links

You might like also

Fetching artifact programmatically through REST/API in Nexus 3.x
There is so many case where it is desirable to pull down artifact from Sonatype #Nexus using REST API, unfortunately #Nexus 3.x Rest API are still under development... Some use cases in Nexus 2.x: You have a script that uses #REST call to pull down the LATEST maven artifacts every night from Nexus and deploys them. You make extensive use of the #REST API in all your puppet modules You use the #Atlassian #Puppet module for Nexus for creating repository, …
993 Days ago
When working with many feature/release/bugix/hotfix branches, it is a bad idea to start changing the pom version as this will create merge conflicts using pull request. this plugin allow you to keep in ALL branches the same pom version for all your projects, for example MASTER-SNAPSHOT the version will be derived from branch name automagically :-) You may want to read more first these 2 short articles Update Maven pom version on GIT checkout in TeamCity maven-release-plugin with GIT git-branch-renamer-maven-plugin …
1005 Days ago
Update Maven pom version on GIT checkout in TeamCity
Here is a solution to the following problems Deriving #Maven artifact version from #GIT branch, Update pom version on #GIT checkout automatically, Add the ability to use Pull request with Apache #Maven. You have a workflow requirement that require you to have the artifact version of a module externally defined from the current branch in #GIT. For example You want to start working on a new feature branch “feature-memory-improvement”, so you branch from master a new branch named feature/feature-memory-improvement Having …
2197 Days ago
Easily Compress Web Application Resources with EhCache
Resources such as #JavaScript and CSS files can be compressed before being sent to the browser, improving network efficiencies and application load time in certain case. If you are not using Apache with mod_deflate or nginx in front of your web application, you may need to implement resources compression yourself…. Wait! don’t start writing your own filter to compress files like CSS, html, txt, javascript it is way more difficult than you think to properly handle http response headers and …
2679 Days ago
Tomcat 7 and Apache Maven
Here is 3 different way to control the lifetime a local Tomcat 7 container using Apache #Maven. A typical scenario would be to start a servlet container prior to running integration tests (Selenium, SAHI or using any other framework you can think of ) With the following examples, you will be able to start an instance of Tomcat 7 running your web application in the pre-integration-test phase and stop the instance in the post-integration-test phase. You can also decide to …
2679 Days ago
Apache Maven copy local file to a remote server server using SSH
I will show you in an Apache #Maven configuration file how to copy files to server each time the package phase is executed. Solution with Ant SCP task This snippet of code is a ready to use code that make use of Apache Ant task scp, Just put this snippet of code in your #Maven module where the assembly is executed or anywhere else to push all tar.gz files to a server just run a #maven mvn package, you can …
2867 Days ago
Apache M2Eclipse: Get rid of Duplicate resources when opening resources and types
In this small post, I’ll show you how to remove duplicated resources in the Open Resource view of #Eclipse Eclipse – M2Eclipse – Subversive …
2873 Days ago
Apache Maven 3 Cookbook
  First a big thanks to Packt Publishing for having sent me this book to review! I did enjoy going through this book, while I did not learn a lot of new stuff (I am using Apache #Maven daily since 2006!), I found it to be concise and would recommend it anytime to any of my colleagues. But let’s go through my review of this cookbook of over 50 recipes towards optimal #Java Software Engineering with #Maven 3: Apache #Maven …
3015 Days ago
Apache Maven 3 Cookbook Review
Thanks to Packt Publishing for having sent me this book to review. I will publish a review in the next coming days Grasp the fundamentals and extend Apache #Maven 3 to meet your needs Implement engineering practices in your application development process with Apache #Maven Collaboration techniques for Agile teams with Apache #Maven Use Apache #Maven with #Java, Enterprise Frameworks, and various other cutting-edge technologies Develop for Google Web Toolkit, Google App Engine, and Android Platforms using Apache #Maven You …
3061 Days ago
List conflicting dependencies in the Maven reactor
The Maven Dependency Plugin among other things include a dependency:analyze-duplicate The dependency plugin provides the capability to manipulate artifacts. It can copy and/or unpack artifacts from local or remote repositories to a specified location. This Apache #Maven plugin is really feature rich and provide a lot of interesting goals: …
3177 Days ago