pixel

How to install Apache Maven on CentOS 7

Share on Social Media

Need to build Java projects efficiently? Learn how to install Apache Maven on CentOS 7 with this easy step-by-step guide. Don’t fall behind—boost your development workflow now and stay ahead of the competition! #centlinux #linux #devops

What is Apache Maven?

Apache Maven is a build automation and project management tool. Maven primarily build for Java projects, but due to its plugin based architecture, it can be used for C#, Ruby, C, C++, etc projects. Apache Maven projects are build around Project Object Model (POM) and uses an XML file (pom.xml) to describe its software project configurations.

Apache Maven is a widely used build automation and project management tool designed to simplify the process of building and managing Java-based software projects. Developed by the Apache Software Foundation, Maven provides a standard way to structure projects, manage dependencies, and automate the build process.

How to install Apache Maven on CentOS 7
How to install Apache Maven on CentOS 7

Key features of Apache Maven include:

  1. Project Object Model (POM): Maven uses a Project Object Model, which is an XML file (pom.xml) that describes the project’s configuration, dependencies, and build settings. This standardized model allows developers to manage projects consistently and share project information easily.
  2. Dependency Management: Maven simplifies the management of project dependencies by automatically downloading and incorporating required libraries (JAR files) from repositories. This helps in maintaining a consistent and easily reproducible build environment.
  3. Build Lifecycle: Maven defines a set of build phases and goals that define the build lifecycle. Developers can execute various tasks, such as compilation, testing, packaging, and deployment, by invoking specific Maven goals.
  4. Plugin Architecture: Maven is extensible through plugins that provide additional functionality. A wide range of plugins is available for tasks like code analysis, testing, reporting, and integration with other tools.
  5. Convention over Configuration: Maven follows the principle of convention over configuration, which means that developers need to follow certain conventions, and Maven will automatically configure the project based on these conventions. This reduces the need for extensive configuration.
  6. Central Repository: Maven uses a central repository for storing and retrieving project dependencies. The central repository is a vast collection of libraries and plugins that can be easily accessed by Maven during the build process.

Developers use Maven by creating a POM file for their projects, specifying dependencies, build settings, and other project information. Maven then automates the build process, fetching dependencies, compiling code, running tests, and creating distributable artifacts.

Overall, Apache Maven is a powerful and widely adopted tool in the Java development ecosystem, contributing to the efficiency, consistency, and repeatability of software builds and project management.

Recommended Training: DevOps Beginners to Advanced with Projects
Begin Your DevOps Career As a Newbie | AWS, Linux, Scripting, Jenkins, Ansible, GitOps, Docker, Kubernetes, & Terraform.

4039556 ebb3 9
show?id=oLRJ54lcVEg&bids=1597309

Apache Maven Alternatives

Apache Maven is a popular build automation tool, but there are several alternatives available that you might consider depending on your project’s needs. Here are some notable alternatives:

  1. Gradle: Known for its flexibility and performance, Gradle combines the best features of Apache Ant and Apache Maven. It’s particularly popular for Android development.
  2. Apache Ant: An older tool that’s very flexible and configurable. It uses XML to define build processes and is highly customizable, although it can be more complex to set up compared to Maven.
  3. SBT (Simple Build Tool): Mainly used for Scala projects, SBT is designed to integrate seamlessly with the Scala language and ecosystem.
  4. Bazel: Developed by Google, Bazel is known for its speed and ability to handle large-scale builds efficiently. It’s used in many large projects and supports multiple languages.
  5. Leiningen: Focused on Clojure projects, Leiningen simplifies the process of managing dependencies and building projects in the Clojure ecosystem.
  6. Buck: Developed by Facebook, Buck emphasizes the speed of builds and is capable of handling large codebases. It supports multiple programming languages and is highly scalable.
  7. Buildr: A build system for Java-based applications, Buildr aims to be simpler and more flexible than Maven by leveraging Ruby’s capabilities.
  8. Kobalt: A newer build tool that aims to provide modern features and better integration with Kotlin projects.

Choosing the right tool depends on your specific project requirements, language preferences, and the complexity of your build processes. Each of these tools has its strengths and can be the best fit for different scenarios.

Read Also: How to install Apache Maven on Rocky Linux 9

Linux Server Specification

We have a CentOS 7 virtual machine with following specification:

  • Hostname – appserver-01.example.com
  • IP Address – 192.168.116.130/24
  • Operating System – CentOS 7.6

Install OpenJDK on CentOS 7

Connect to appserver-01.example.com using ssh.

Apache Maven 3.6 requires Java Development Kit (JDK) 1.7 or above.

We have JDK 1.8 available in CentOS yum repository. Therefore, install it using yum command.

yum install -y java-1.8.0-openjdk-devel

If you already have another version of Java installed, then use alternatives command to set active java command.

alternatives --config java

Output:

There are 2 programs which provide 'java'.

Selection Command
-----------------------------------------------
+ 1 /usr/java/jdk-11.0.1/bin/java
* 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/bin/java)

Enter to keep the current selection[+], or type selection number: 2

Repeat the above step for javac and jar commands.

Set JAVA_HOME environment variable.

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64" >> /etc/profile

Check version of active java command.

java -version

Output:

openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

OpenJDK 1.8 has been installed and configured on our CentOS 7 server.

Install Apache Maven on CentOS 7

Download Apache Maven 3.6 from https://maven.apache.org/. It is the latest version at the time of this write-up.

wget https://www-eu.apache.org/dist/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

Extract Apache Maven tarball to /usr/lib directory.

tar xf apache-maven-3.6.0-bin.tar.gz -C /usr/lib/

Set Apache Maven environment variables.

vi /etc/profile

Append following lines at the end of this file.

M2_HOME="/usr/lib/apache-maven-3.6.0"
export M2_HOME

M2="$M2_HOME/bin"
MAVEN_OPTS="-Xms256m -Xmx512m"
export M2 MAVEN_OPTS

PATH=$M2:$PATH
export PATH

Apply these changes to current user session, execute /etc/profile.

. /etc/profile

Verify the environment variables.

# env | grep M2
M2=/usr/lib/apache-maven-3.6.0/bin
M2_HOME=/usr/lib/apache-maven-3.6.0

Verify Apache Maven installation by executing mvn command.

mvn -version

Output:

Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T23:41:47+05:00)
Maven home: /usr/lib/apache-maven-3.6.0
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"

Apache Maven has been successfully installed on our CentOS 7 server.

Frequently Asked Questions (FAQs)

What is Apache Maven, and why do I need it?
Apache Maven is a build automation and project management tool used primarily for Java projects. It simplifies dependency management and project builds.

Do I need Java installed before installing Maven?
Yes, Maven requires Java to run. Ensure you have Java (JDK) installed on your CentOS 7 system before proceeding with Maven installation.

Where can I download Apache Maven for CentOS 7?
You can download the latest Maven binary from the official Apache Maven website. Choose the appropriate version for your system.

How do I verify that Maven is installed correctly?
After installation, run the mvn --version command in the terminal. If installed properly, it will display the Maven version along with Java details.

Do I need to configure environment variables for Maven?
Yes, you must set the PATH and M2_HOME environment variables to ensure Maven works globally from any directory in the terminal.

Final Thoughts

By installing Apache Maven on CentOS 7, you’ve unlocked a powerful tool for managing and automating Java project builds with ease and consistency. From downloading Maven to configuring environment variables, you’re now ready to streamline development and eliminate manual build headaches.

Don’t let outdated practices slow you down—developers around the world are already leveraging Maven to boost productivity and maintain clean, scalable projects. Get ahead—start building smarter today!

Whether you need cloud optimization, server management, or automation, I provide comprehensive AWS and Linux services. Hire me on Fiverr to elevate your systems.

Looking for something?

Leave a Reply