mvn dependency:treeIf 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: org/sonatype/aether/version/VersionConstraint
To skip running tests:
mvn install -DskipTests mvn install -DskipTests=true //to override skipTests property in pomTo skip compiling and running tests:
mvn install -Dmaven.test.skip=trueTo run maven in offline mode, to avoid downloading:
mvn -o install mvn --offline installTo force check for updates of snapshots and releases from remote repositories:
mvn -U install mvn --update-snapshots installTo list all maven profiles, and see which is the active profile:
mvn help:all-profilesTo override maven surefire plugin forkMode:
mvn test -DforkMode=never mvn test -DforkMode=alwaysTo 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=neverTo 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#test1To 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:
<build> <pluginManagement> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <environmentVariables> <JAVA_HOME>${env.JAVA_HOME}</JAVA_HOME> </environmentVariables> </configuration> </plugin> </plugins> </pluginManagement> </build>
To pass system properties to integration tests executed with failsafe plugin:
<build> <plugins> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <version>2.11</version> <configuration> <systemPropertyVariables> <project.build.directory>${project.build.directory}</project.build.directory> <project.artifactId>${project.artifactId}</project.artifactId> </systemPropertyVariables> </configuration> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
To run mvn with an alternate user setting file, e.g., settings-jboss.xml:
mvn -s $HOME/.m2/settings-jboss.xmlThe content of settings-jboss.xml:
<settings> <repositories> <repository> <id>jboss-public-repository-group</id> <name>JBoss Public Maven Repository Group</name> <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </snapshots> </repository> </repositories> </settings>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 --tagsTo 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 MS1To 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=falseThis is useful when releasing a new version of the application. Note that the system property
generateBackupPoms=false
tells maven not to generate pom.xml backup files.
Add a comment