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.
In this article, we will install Apache Maven 3.6 (latest) on CentOS 7 server. Apache Maven 3.6 requires Java Development Kit (JDK) 1.7 or above. Therefore, first we will install OpenJDK 1.8 then we will install Apache Maven 3.6.
Read Also: How to install Apache Maven on Rocky Linux 9
This Article Provides:
- System Specification
- Installing Java Development Kit (openJDK) on CentOS 7
- Installing Apache Maven 3.6 on CentOS 7
System 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
Installing Java Development Kit (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 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
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.
Installing Apache Maven 3.6 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
--2018-12-25 18:26:42-- https://www-eu.apache.org/dist/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
Resolving www-eu.apache.org (www-eu.apache.org)... 95.216.24.32, 2a01:4f9:2a:185f::2
Connecting to www-eu.apache.org (www-eu.apache.org)|95.216.24.32|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9063587 (8.6M) [application/x-gzip]
Saving to: âapache-maven-3.6.0-bin.tar.gzâ
100%[======================================>] 9,063,587 271KB/s in 28s
2018-12-25 18:27:11 (317 KB/s) - âapache-maven-3.6.0-bin.tar.gzâ saved [9063587/9063587]
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
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.
No comments:
Post a Comment