My mvn notes
To view dependency tree:
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.
2 comments:
Great and Useful Article.
Online Java Course
Java Online Training
Java Course Online
J2EE training
online J2EE training
Best Recommended books for Spring framework
Java Interview Questions
Java Training Institutes in Chennai
Java Training in Chennai
J2EE Training in Chennai
java j2ee training institutes in chennai
I enjoyed on reading your blog post. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article. Please visit my website, Friv 4000 Games is where all the free friv games.
Friv 4000
Post a Comment