maven tutorial code example
Example 1: what is pom.xml
- pom.xml file allows us to add, remove, manage dependencies
and versions from one single location.
- POM stands for project object model
- .xml -> stands for: extensible markup language
Example 2: maven in 5 minutes
my-app|-- pom.xml`-- src |-- main | `-- java | `-- com | `-- mycompany | `-- app | `-- App.java `-- test `-- java `-- com `-- mycompany `-- app `-- AppTest.java
Example 3: maven commands
mvn --version
Prints out the version of Maven you are running.
mvn clean
Clears the target directory into which Maven normally builds your project.
mvn package
Builds the project and packages the resulting JAR file into the target directory
mvn package -Dmaven.test.skip=true
Builds the project and packages the resulting JAR file into the target directory
- without running the unit tests during the build.
mvn clean package
Clears the target directory and Builds the project and packages the
resulting JAR file into the target directory.
mvn clean package -Dmaven.test.skip=true
Clears the target directory and builds the project and packages the
resulting JAR file into the target directory - without running the unit
tests during the build.
mvn verify
Runs all integration tests found in the project.
mvn clean verify
Cleans the target directory, and runs all integration tests found
in the project.
mvn install
Builds the project described by your Maven POM file and installs the
resulting artifact (JAR) into your local Maven repository
mvn install -Dmaven.test.skip=true
Builds the project described by your Maven POM file without
running unit tests, and installs the resulting artifact (JAR) into
your local Maven repository
mvn clean install
Clears the target directory and builds the project described
by your Maven POM file and installs the resulting artifact (JAR)
into your local Maven repository
mvn clean install -Dmaven.test.skip=true
Clears the target directory and builds the project described
by your Maven POM file without running unit tests, and installs
the resulting artifact (JAR) into your local Maven repository
mvn dependency:tree Prints out the dependency tree for your project
- based on the dependencies configured in the pom.xml file.
mvn dependency:tree -Dverbose Prints out the dependency
tree for your project - based on the dependencies configured
in the pom.xml file. Includes repeated, transitive dependencies.
mvn dependency:tree -Dincludes=com.fasterxml.jackson.core
Prints out the dependencies from your project which depend on the
com.fasterxml.jackson.core artifact.
mvn dependency:tree -Dverbose -Dincludes=com.fasterxml.jackson.core
Prints out the dependencies from your project which depend on the
com.fasterxml.jackson.core artifact. Includes repeated, transitive dependencies.
mvn dependency:build-classpath
Prints out the classpath needed to run your project (application)
based on the dependencies configured in the pom.xml file.
Example 4: maven
What is MAVEN?
- Maven is a built automation tool.
- Maven is a tool that helps us create projects easyly.
--> What is built?
- Creating, adding, compiling, testing and deploying a project.
All of these combined are called a Built.
- Since maven is "built" automation tool, it helps us automate
all of these steps.
--> Similar tools like Maven?
- ant
- gradle
- kotlin
--> Most important file in a Maven project?
- pom.xml is the most important file in a Maven project.
Example 5: what is maven
What is MAVEN?
- Maven is a built automation tool.
- Maven is a tool that helps us create projects easyly.
--> What is built?
- Creating, adding, compiling, testing and deploying a project.
All of these combined are called a Built.
- Since maven is "built" automation tool, it helps us automate
all of these steps.
--> Similar tools like Maven?
- ant
- gradle
- kotlin
--> Most important file in a Maven project?
- pom.xml is the most important file in a Maven project.
Example 6: maven create project from archetype command line
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false