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 CentOS 7 / Fedora 30/29/28.

For Ubuntu / Debian, use: Install Latest Apache Maven on Ubuntu & Debian

Step 1: Update system & Install Java

Apache Maven requires the host system to have the Java Development Kit. Install OpenJDK on CentOS 7 / Fedora:

Install Java on CentOS 7:

sudo yum install lsof java-1.8.0-openjdk  java-1.8.0-openjdk-devel
java -version

Install Java on Fedora:

$ sudo dnf install java-11-openjdk
OR
$ sudo dnf install java-1.8.0-openjdk  java-1.8.0-openjdk-devel

After the installation of Java, you can quickly confirm the version using the following command:

$ java -version
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

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:

curl -O 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. Check Official Maven Documentation for further learning.

You can also read:

How to Install Apache Spark on Ubuntu / Debian

How to Install Apache Hadoop / HBase on Ubuntu

How to Install Apache Hadoop / HBase on CentOS

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