# 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),打开页面,找到对应版本,右键复制链接地址。
#通过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>
如下图:
# 配置中央仓库镜像
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>
如下图:
# 其他
# 谷雨快速开发平台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>