My mvn notes

To view dependency tree:

mvn dependency:tree
If you see the following errors when running dependency:tree, try upgrading the dependency plugin to version 2.8 or later.
[WARNING] Error injecting: org.apache.maven.shared.dependency.graph.internal.Maven3DependencyGraphBuilder
java.lang.NoClassDefFoundError: org/sonatype/aether/version/VersionConstraint

Caused by: java.lang.ClassNotFoundException: org.sonatype.aether.version.VersionConstraint
 at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
 at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259)
 at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:235)
 at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227)
 ... 62 more

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.6:tree (default-cli) on project: 
Execution default-cli of goal org.apache.maven.plugins:maven-dependency-plugin:2.6:tree failed: 
A required class was missing while executing org.apache.maven.plugins:maven-dependency-plugin:2.6:tree: 

To skip running tests:
mvn install -DskipTests
mvn install -DskipTests=true  //to override skipTests property in pom
To skip compiling and running tests:
mvn install -Dmaven.test.skip=true
To run maven in offline mode, to avoid downloading:
mvn -o install
mvn --offline install
To force check for updates of snapshots and releases from remote repositories:
mvn -U install
mvn --update-snapshots install
To list all maven profiles, and see which is the active profile:
mvn help:all-profiles
To override maven surefire plugin forkMode:
mvn test -DforkMode=never
mvn test -DforkMode=always
To debug a non-forked test, just need to attach the remote debugger to mvn process itself. mvnDebug is a convenience script located in the same directory as mvn executable:
mvnDebug test
mvnDebug test -DforkMode=never
To debug a forked test, you will need to set the debug option to the forked VM, not the mvn VM. The way to do it is to set -Dmaven.surefire.debug flag to mvn VM (the parent VM):
mvn test -Dmaven.surefire.debug
mvn test -Dmaven.surefire.debug -DforkMode=always
mvn test -Dmaven.surefire.debug -Dtest=com.my.test.MyTest#test1
To avoid OutOfMemoryError from running maven, especially maven 3, set environment variable MAVEN_OPTS:
# in $HOME/.tcshrc, or $HOME/.cshrc, if using csh or tcsh:
setenv MAVEN_OPTS "-Xmx1024m -XX:MaxPermSize=256m"

# in $HOME/.profile or $HOME/.bashrc, if using ksh or bash:
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m"

# in Windows Control Panel, or set it in DOS command line (This is Windows. DO NOT quote values):
set MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=256m

To run individual unit test, use -Dtest system property. Copy reference on the test method in IDE to get the full test name (command-option-shift-c in Intellij on Mac):
mvn install -Dtest=test.UserTest#testNewUser
mvn test -Dtest=test.UserTest#testNewUser

To run individual integration test, use -Dit.test system property:
mvn install -Dit.test=test.UserTestIT#testLogin
mvn verify -Dit.test=test.UserTestIT#testLogin
mvn integration-test -Dit.test=test.UserTestIT#testLogin

To pass environment variables to tests executed with maven surefire plugin:

To pass system properties to integration tests executed with failsafe plugin:

To run mvn with an alternate user setting file, e.g., settings-jboss.xml:
mvn -s $HOME/.m2/settings-jboss.xml
The content of settings-jboss.xml:
         <name>JBoss Public Maven Repository Group</name>
When including mvn command in a Windows batch file, use call command.
call mvn clean install
cd integration-tests
call mvn clean install

To push tags to the remote repository:
git push --tags
To delete a tag and push this deletiion to the remote repository:
git tag (to list all tags)
git tag -d MS1
git push --delete origin MS1
To search for mvn surefire test failures on the screen: Ctrl-F <<<
<<< is probably the quickest way to find it. Searching for words like Failure gives too many results.

To increment or bump up artifact version:

mvn versions:set -DnewVersion=9.9.0-SNAPSHOT -DgenerateBackupPoms=false
This is useful when releasing a new version of the application. Note that the system propertygenerateBackupPoms=false tells maven not to generate pom.xml backup files.