You can support us by downloading this article as PDF from the Link below. Download the guide as PDF

Apache Maven is a software project management/automation tool used primarily for managing Java project’s build, reporting, and documentation from a central piece of information. This tutorial will help you to install Apache Maven on Ubuntu 19.04/18.04/16.04 & Debian 9.

Step 1: Update system & Install Java

Apache Maven requires the host system to have the Java Development Kit. Install OpenJDK on Ubuntu / Debian.

sudo apt update
sudo apt install -y default-jdk

Check your installed Java version using:

java -version

Step 2: Download and Install Apache Maven

Check  the latest release of Apache Maven and save this to a variable:

export VER="3.6.1"

Download the latest release of Apache Maven exported above:

wget http://www-eu.apache.org/dist/maven/maven-3/${VER}/binaries/apache-maven-${VER}-bin.tar.gz

Now extract the downloaded tarball

tar xvf apache-maven-${VER}-bin.tar.gz

Move the resulting directory to /opt

sudo mv apache-maven-${VER} /opt/maven

Setup Environment Variables to load Apache Maven

cat <<EOF | sudo tee /etc/profile.d/maven.sh
export MAVEN_HOME=/opt/maven
export PATH=\$PATH:\$MAVEN_HOME/bin
EOF

Source the file

$ source /etc/profile.d/maven.sh
$ echo $MAVEN_HOME
/opt/maven
$ echo $PATH

Your $PATH should have /opt/maven/bin at the end.

Step 3: Verify the Installation

Finally, validate that Apache Maven has been installed correctly:

$ mvn --version
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T12:00:29-07:00)
Maven home: /opt/maven
Java version: 11.0.2, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: ISO-8859-1
OS name: "linux", version: "4.15.0-46-generic", arch: "amd64", family: "unix"

This command should print Maven version and used Java version.

All options are available on:

$ mvn -h

Create Maven projects directory:

mkdir ~/mvn-projects
cd ~/mvn-projects

Create your first project:

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

Since this is the first run,  it may take a while to execute.  This is because Maven is downloading the most recent artifacts (plugin jars and other files) into your local repository.

On a successful run, you should get output similar to below:

INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /root/projects
[INFO] Parameter: package, Value: com.mycompany.app
[INFO] Parameter: groupId, Value: com.mycompany.app
[INFO] Parameter: artifactId, Value: my-app
[INFO] Parameter: packageName, Value: com.mycompany.app
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /root/projects/my-app
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  15.301 s
[INFO] Finished at: 2018-11-18T02:26:08-05:00
[INFO] ------------------------------------------------------------------------

The generate goal created a directory with the same name given as the artifactId.

$ tree my-app/
my-app/
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── com
    │           └── mycompany
    │               └── app
    │                   └── App.java
    └── test
        └── java
            └── com
                └── mycompany
                    └── app
                        └── AppTest.java

11 directories, 3 files
  • The src/main/java directory contains the project source code
  • The src/test/java directory contains the test source
  • The file pom.xml is the project’s Project Object Model (POM).

The filepom.xml is the core of a project’s configuration in Maven. It contains the majority of information required to build a project.

Build the Project

To build your Project, run:

mvn package

The command line will print out various actions, and end with the following:

.....
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu Nov 18 10:39:20 EAT 2018
[INFO] Final Memory: 2M/6M
[INFO] ------------------------------------------------------------------------

That’s all, you have successfully installed Apache Maven on Ubuntu 19.04/18.04 /16.04 & Debian 9. Check Official Maven Documentation for further learning.

As an appreciation for the content we put out,
we would be thrilled if you support us!


As we continue to grow, we would wish to reach and impact more people who visit and take advantage of the guides we have on our blog. This is a big task for us and we are so far extremely grateful for the kind people who have shown amazing support for our work over the time we have been online.

Thank You for your support as we work to give you the best of guides and articles. Click below to buy us a coffee.

LEAVE A REPLY

Please enter your comment!
Please enter your name here