Originally written March 2013, migrated to blog in 2016.  I’d avoided Maven for about 5 years, but I was wrong, the entire world moved to it, then Ivy, and all the rest that followed….

The source material and quick guide is at:

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

To create your Java project

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

To create your web project

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-webapp

Lifecycle targets

  • validate: validate the project is correct and all necessary information is available
  • compile: compile the source code of the project
  • test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
  • package: take the compiled code and package it in its distributable format, such as a JAR.
  • integration-test: process and deploy the package if necessary into an environment where integration tests can be run
  • verify: run any checks to verify the package is valid and meets quality criteria
  • install: install the package into the local repository, for use as a dependency in other projects locally
  • deploy: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

Most common commands

 mvn package
 mvn clean install
 mvn clean dependency:copy-dependencies package 

Eclipse plugin

The plugin I am using is from url below, in eclipse->help->updates menu.

http://download.eclipse.org/technology/m2e/releases

Sadly, it starts to use the embedded maven and that is not what I want, so then, into preferences->maven->Installations

and select c;\java\apache-maven-3.04 which means it also picks up the M2_REPO - from the global settings field below the installations. Note that there is allso a User Settings tab for maven preferences, which will use another settings.xml. Providing you never create that file you can leave it alone.