Apache Maven is an open-source project management and comprehension tool used primarily for Java projects. Maven uses a Project Object Model (POM), which is essentially an XML file containing information about the project, configuration details, the project’s dependencies, and so on.

In this tutorial, we’ll explain how to install Apache Maven on CentOS 8.

The standard CentOS repositories contain Maven packages that can be installed with the dnf package manager. This is the easiest way to install Maven on CentOS. However the version included in the repositories may lag behind the latest version of Maven. We’ll also show you how to install the latest version of Maven by downloading the binary distribution archive from their official website.

Choose the installation method that is most appropriate for your setup and environment.


The instructions assume that you are logged in as root or user with sudo privileges.

Installing Apache Maven on CentOS with Dnf/Yum

Installing Maven on CentOS 8 using dnf is a simple, straightforward process.

  1. Install Maven by entering the following command in your terminal:
    sudo dnf install maven
  2. Run the mvn -version command to verify the installation:
    mvn -version

    The output should look something like this:

    Apache Maven 3.5.4 (Red Hat 3.5.4-5)
    Maven home: /usr/share/maven
    Java version: 1.8.0_232, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "4.18.0-80.7.1.el8_0.x86_64", arch: "amd64", family: "unix"

That’s it. Maven has been installed on your CentOS system, and you can start using it.

Installing the Latest Release of Apache Maven

In this section we’ll provide a step by step instructions about how to install the latest Apache Maven version on CentOS 8.

1. Installing OpenJDK

Maven 3.3 requires JDK 1.7 or above to be installed.

Install OpenJDK 11, by typing:

sudo dnf install java-11-openjdk-devel

Verify that Java was successfully installed by running the following command:

java -version

The output should look something like this:

openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5 10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5 10-LTS, mixed mode, sharing)

2. Download Apache Maven

At the time of writing this article, the latest version of Apache Maven is 3.6.3. Check the Maven download page to see if a newer version is available.

Start by downloading the Apache Maven in the /tmp directory with wget command:

wget https://www-us.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz -P /tmp

Once the download is complete, extract the archive in the /opt directory:

sudo tar xf /tmp/apache-maven-3.6.3-bin.tar.gz -C /opt

To have more control over Maven versions and updates, we will create a symbolic link maven that will point to the Maven installation directory:

sudo ln -s /opt/apache-maven-3.6.3 /opt/maven

To upgrade your Maven installation, simply unpack the newer version and change the symlink to point to it.

3. Setup environment variables

Next, we’ll need to set up the environment variables. Open your text editor and create a new file named mavenenv.sh in the /etc/profile.d/ directory.

sudo nano /etc/profile.d/maven.sh

Paste the following code:


export JAVA_HOME=/usr/lib/jvm/jre-openjdk
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}

Save and close the file. The script will be sourced at shell startup.

Make the script executable by running the following chmod command:

sudo chmod  x /etc/profile.d/maven.sh

Load the environment variables using the source command:

source /etc/profile.d/maven.sh

4. Verify the installation

To verify that Maven is installed, use the mvn -version command which will print the Maven version:

mvn -version

You should see something like the following:

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/maven
Java version: 11.0.5, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-11-openjdk-
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-80.7.1.el8_0.x86_64", arch: "amd64", family: "unix"

That’s it. The latest version of Maven has been installed on your CentOS system.


We have shown you how to install Apache Maven on CentOS 8. You should now visit the official Apache Maven Documentation page and learn how to get started with Maven.

If you hit a problem or have feedback, leave a comment below.