# Centos系统的Maven安装手册

# 软件介绍

Maven 是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

# 所需资源

本文档安装操作系统为:centos7 通过以下命令查看centos版本

$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

# 版本选择

选择当前最新版本:3.8.5,注意maven是一个Java开发的项目,其运行环境需要JDK,所以请选择符合自己使用的JDK版本支撑的Maven版本。3.8.5版本,要求JDK1.7及以上版本。

# 安装过程

# 软件下载

访问Maven官网 (opens new window),打开页面,找到对应版本,右键复制链接地址。 image.png

#通过wget获取安装文件
$ wget -O apache-maven-3.8.5.tar.gz --no-check-certificate  https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz

# 安装

# 解压文件到/usr/local/目录
$ tar -zxvf apache-maven-3.8.5.tar.gz -C /usr/local/

# 配置环境变量
$ cat>>/etc/profile<<'EOF'
#maven environment
export MAVEN_HOME=/usr/local/apache-maven-3.8.5
export PATH=$MAVEN_HOME/bin:$PATH
EOF
$ source /etc/profile

# 校验

通过查看maven版本命令,检查是否安装完成

$ mvn -v
Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: /usr/local/apache-maven-3.8.5
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_181/jre

# 特殊设置

# 本地目录配置

Java项目通过mvn命令构建时,会自动拉取在pom.xml中配置的依赖包,为了提高构建效率,避免每次到要从网上下载依赖包,这些包会存储在本地目录中,在maven的配置文件可以指定存储的目录。

#打开配置文件
$ vi /usr/local/apache-maven-3.8.5/conf/settings.xml

# 找到标签  localRepository,在注释部分的下方新增
# <localRepository>/usr/local/maven_repo</localRepository>

如下图: image.png

# 配置中央仓库镜像

mvn只所以可以自动下载依赖包,是根据pom.xml配置的groupId/artifactId/version在maven的中央仓库中进行检索和下载。默认的中央仓库为:http://repo1.maven.org/maven2/ (opens new window)。因为该仓库在国外,下载速度比较慢,所以可以配置在国内仓库的镜像服务,提高下载速度。

#打开配置文件
$ vi /usr/local/apache-maven-3.8.5/conf/settings.xml

# 找到标签 mirrors ,添加以下配置
<mirror>
	<id>alimaven</id>
	<mirrorOf>central</mirrorOf>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

如下图: image.png

# 其他

# 谷雨快速开发平台maven设置

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
				 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
				 xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	 <mirrors>
			 <mirror>
					 <id>mirror</id>
					 <mirrorOf>central,jcenter,!rdc-releases,!rdc-snapshots</mirrorOf>
					 <name>mirror</name>
					 <url>https://maven.aliyun.com/nexus/content/groups/public</url>
			 </mirror>

	 </mirrors>
	 <profiles>
			 <profile>
					 <id>rdc</id>
					 <properties>
							 <altReleaseDeploymentRepository>
									 rdc-releases::default::https://packages.aliyun.com/maven/repository/2271593-release-Orlhwb/
							 </altReleaseDeploymentRepository>
							 <altSnapshotDeploymentRepository>
									 rdc-snapshots::default::https://packages.aliyun.com/maven/repository/2271593-snapshot-afUQRj/
							 </altSnapshotDeploymentRepository>
					 </properties>
					 <repositories>
							 <repository>
									 <id>central</id>
									 <url>https://maven.aliyun.com/nexus/content/groups/public</url>
									 <releases>
											 <enabled>true</enabled>
									 </releases>
									 <snapshots>
											 <enabled>false</enabled>
									 </snapshots>
							 </repository>
							 <repository>
									 <id>snapshots</id>
									 <url>https://maven.aliyun.com/nexus/content/groups/public</url>
									 <releases>
											 <enabled>false</enabled>
									 </releases>
									 <snapshots>
											 <enabled>true</enabled>
									 </snapshots>
							 </repository>
							 <repository>
									 <id>rdc-releases</id>
									 <url>https://packages.aliyun.com/maven/repository/2271593-release-Orlhwb/</url>
									 <releases>
											 <enabled>true</enabled>
									 </releases>
									 <snapshots>
											 <enabled>false</enabled>
									 </snapshots>
							 </repository>
							 <repository>
									 <id>rdc-snapshots</id>
									 <url>https://packages.aliyun.com/maven/repository/2271593-snapshot-afUQRj/</url>
									 <releases>
											 <enabled>false</enabled>
									 </releases>
									 <snapshots>
											 <enabled>true</enabled>
									 </snapshots>
							 </repository>
					 </repositories>
					 <pluginRepositories>
							 <pluginRepository>
									 <id>central</id>
									 <url>https://maven.aliyun.com/nexus/content/groups/public</url>
									 <releases>
											 <enabled>true</enabled>
									 </releases>
									 <snapshots>
											 <enabled>false</enabled>
									 </snapshots>
							 </pluginRepository>
							 <pluginRepository>
									 <id>snapshots</id>
									 <url>https://maven.aliyun.com/nexus/content/groups/public</url>
									 <releases>
											 <enabled>false</enabled>
									 </releases>
									 <snapshots>
											 <enabled>true</enabled>
									 </snapshots>
							 </pluginRepository>
							 <pluginRepository>
									 <id>rdc-releases</id>
									 <url>https://packages.aliyun.com/maven/repository/2271593-release-Orlhwb/</url>
									 <releases>
											 <enabled>true</enabled>
									 </releases>
									 <snapshots>
											 <enabled>false</enabled>
									 </snapshots>
							 </pluginRepository>
							 <pluginRepository>
									 <id>rdc-snapshots</id>
									 <url>https://packages.aliyun.com/maven/repository/2271593-snapshot-afUQRj/</url>
									 <releases>
											 <enabled>false</enabled>
									 </releases>
									 <snapshots>
											 <enabled>true</enabled>
									 </snapshots>
							 </pluginRepository>
					 </pluginRepositories>
			 </profile>
	 </profiles>
	 <activeProfiles>
			 <activeProfile>rdc</activeProfile>
	 </activeProfiles>
</settings>