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 29 / Fedora 28.
Step 1: Update system & Install Java
Apache Maven requires the host system to have Java Development Kit. Install OpenJDK on CentOS 7 / Fedora:
How to Install Java 11 on CentOS 7 / Fedora 29 / Fedora 28
After installing Java, confirm version:
$ java -version openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, 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.0"
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 > /etc/profile.d/maven.sh<<EOF 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 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk-11.0.1/bin:/root/bin:/opt/maven/bin
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.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T14:41:47-04:00) Maven home: /opt/maven Java version: 11.0.1, vendor: Oracle Corporation, runtime: /usr/local/jdk-11.0.1 Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-862.3.3.el7.x86_64", 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. Read Official Maven Documentation for further learning.