Linux(CentOS7.x)安装Maven

Linux(CentOS7.x)安装Maven

环境信息

名称:版本
Maven版本3.6.0
操作系统CentOS7.6 x64

maven 下载和安装

访问Apache Maven下载页面,下载下图

在这里插入图片描述
将下载文件上传到/usr/local目录下,并解压为目录apache-maven

tar -zxvf apache-maven-3.6.0-bin.tar.gz
mv apache-maven-3.6.0 apache-maven

环境变量配置

Maven 环境变量配置,在export PATH所在行下面添加如下内容

编辑/etc/profile文件

MAVEN_HOME=/usr/local/apache-maven
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

使新加的环境变量生效

source /etc/profile

验证安装结果

执行命令 mvn -version

[root@MiWiFi-R3-srv apache-maven]# mvn -version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /usr/local/apache-maven
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.1.3.el7.x86_64", arch: "amd64", family: "unix"

配置阿里云仓库

因网络原因,国外的Maven仓库访问下载速度属于“龟速”,阿里云搭建了国内的maven仓库,方便了国内的广大开发者下载依赖jar包,提高开发效率。在maven中设置阿里云的中央仓库方法如下:

<mirrors>....</mirrors>中间增加如下内容:

	<mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

注意:

<mirrorOf>central</mirrorOf>尽量避免写成,<mirrorOf>*</mirrorOf>,这样在工程的pom文件中如果自定义一些repository时会不生效。如一个spring cloud项目中的POM文件中指定了repository,如果配置为*,回报如下

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
    </repository>
</repositories>

碰到的问题

配置阿里云maven仓库后,执行mvn 命令报错如下。

[ERROR][ERROR] Some problems were encountered while processing the POMs:
[ERROR] Non-resolvable import POM: Failure to find org.springframework.cloud:spring-cloud-dependencies:pom:Greenwich.RC2 in http://maven.aliyun.com/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of nexus-aliyun has elapsed or updates are forced @ line 45, column 25

分析:

在配置阿里云Maven仓库是mirrorOf 属性写成了<mirrorOf>*</mirrorOf>这样在工程的pom文件中如果自定义一些repository时会不生效,要写成<mirrorOf>central</mirrorOf>。如一个spring cloud项目中的POM文件中指定了repository如下:

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
    </repository>
</repositories>

maven 会到阿里中央仓库下载Greenwich.RC2的jar包,但是下载失败,从https://repo.spring.io/milestone是可以下载的。

大家如果有什么好的方法,欢迎留言。


版权声明:本文为wangchunfa122原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。