本想通过 yum install maven
直接安装的, 方便省事, 但报错说没找到, 于是只能手动安装了, 把整个过程记录了一下, 包括下载, 解压, 配置及验证的全过程, 并对用到的命令及参数作了详细说明, 需要的同学可以参考.
maven 官网找到下载链接
首先要去到 maven 的官网, https://maven.apache.org/, 右边有个 download 链接, 点击进去找到最新安装包
找到带 bin 字样的安装包, 这里选的就是第一个
复制其下载链接, 如下: https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz (2024年8月初最新版)
注: 当时下的是 3.9.8, 后来它又更新了, 所以后面截图中显示的是 3.9.9
另: 这里是直接复制了下载链接, 而不是直接下载, 因为打算在 linux 主机上直接使用
wget
命令下载.当然你也可以在自己本地主机比如 windows 电脑上先下载下来, 再上传 linux 主机也行, 不过这样稍麻烦.
另: 这样下载的是 bin 而不是那个带 src 字样的, 那个是源码包, 还要自己去 build, 没啥必要, 不如直接下载它已经 build 好的.
使用 wget 下载压缩包
登录云主机, 使用 wget
接上刚才的链接, 直接下载, 如下:
shell
wget https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz
如果一切正常, 最后就会显示文件已经被下载保存到本地了, 如下所示:
shell
[root@ecs-230d ~]# wget https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz
--2024-08-01 15:27:32-- https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz
Resolving dlcdn.apache.org (dlcdn.apache.org)... 151.101.2.132, 2a04:4e42::644
Connecting to dlcdn.apache.org (dlcdn.apache.org)|151.101.2.132|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9083702 (8.7M) [application/x-gzip]
Saving to: 'apache-maven-3.9.8-bin.tar.gz'
apache-maven-3.9.8-bin.tar.gz 100%[===================================================================================================>] 8.66M 9.88KB/s in 18m 48s
2024-08-01 15:46:22 (7.87 KB/s) - 'apache-maven-3.9.8-bin.tar.gz' saved [9083702/9083702]
根据云主机的带宽及访问外网的速度, 这个下载可能需要消耗一定的时间.
tar 解压缩
shell
tar xzvf apache-maven-3.9.8-bin.tar.gz -C /usr/lib/
命令及各参数的解析如下:
x
: 是 extract 的简写, 表示该命令的操作模式为解压(从归档文件中提取文件)
z
参数它用于处理使用 gzip 压缩的文件. 当与 x(提取)、c(创建)等操作结合使用时, 它告诉 tar 在执行相应操作时自动调用 gzip(注: 文件带 .gz 后缀名则该参数可选)
v
: 代表 verbose, 意为详细模式. 使用这个选项时, tar 命令在执行过程中会显示详细的操作信息, 如解压的每个文件名.
f
: 指定了要操作的归档文件名. 在这个命令中, 就是要解压的文件 apache-maven-3.9.8-bin.tar.gz.
-C /usr/lib/
: 这个选项指定了目标目录, 即解压后文件存放的位置.-C
是change directory
的意思, 在执行操作之前,tar
命令会先切换到这个指定的目录. 在这里, 所有的解压内容都会被放置到/usr/lib/
目录下.
这里将文件解压到了 /usr/lib/
文件夹下, 这个解压的目的地你可以自由选择, 但你要记好这个解压的目的地, 因为后面配置环境变量还会用到.
设置 maven 环境变量
环境变量的配置位于 /etc/profile
文件下, 我们通过 vi
命令来编辑它:
shell
vi /etc/profile
该文件通常已经配置了一些内容, 不要去改已有的, 定位到文件的最下面, 在文件末尾增加以下内容, 然后保存退出:
shell
M2_HOME="/usr/lib/apache-maven-3.9.8"
export M2_HOME
M2="$M2_HOME/bin"
MAVEN_OPTS="-Xms256m -Xmx512m"
export M2 MAVEN_OPTS
PATH=$M2:$PATH
export PATH
此处设置了 M2_HOME
, M2
, MAVEN_OPTS
等几个环境变量, 并把 /usr/lib/apache-maven-3.9.8/bin
加入了 PATH
变量中, 这样其它地方就可以直接使用其下的 mvn
命令了, 而不用输入完整的路径名.
这里的配置稍微繁琐了些, MAVEN_OPTS
等是可选的:
MAVEN_OPTS 用于配置 JVM 在运行 Maven 时的初始和最大内存分配.
Maven 在启动时会检查这个变量, 如果有设置, 则会将这些选项传递给 JVM.
-Xms256m
: 这个选项设置了 JVM 的初始堆内存大小(Initial Heap Size)为 256M. 堆是 Java 程序运行时存储对象实例的地方,-Xms
参数定义了 JVM 启动时分配给堆的最小内存空间. 设置这个值可以帮助减少程序启动初期可能遇到的内存分配延迟.
-Xmx512m
: 这个选项设置了 JVM 的最大堆内存大小(Maximum Heap Size)为 512M. 这意味着 JVM 在运行过程中能够使用的最大内存不会超过这个值. 如果应用程序需要更多的内存而达到这个限制, 可能会出现内存溢出错误(OutOfMemoryError). 通过合理设置这个值, 可以防止应用程序因为内存需求超出系统可用资源而崩溃, 同时也避免了过度消耗系统资源.以上配置有助于提升 Maven 处理大型项目或复杂构建任务时的性能和稳定性. 根据实际项目的大小和构建复杂度, 这些值可能需要进行相应的调整.
简单点也可以这样配置, 只设置了 M2_HOME
, 并把 $M2_HOME/bin
加入了 PATH 搜索中.
shell
export M2_HOME=/usr/lib/apache-maven-3.9.8
export PATH=$M2_HOME/bin:$PATH
使环境变量生效
环境变量添加后不会自动生效, 你需要执行如下命令使它立刻生效:
shell
. /etc/profile
或者是
shell
source /etc/profile
点命令(.
) 和 source
命令的作用是相同的, 都是加载或重新加载 /etc/profile
文件的内容到当前的 shell 环境中, 使得所做的环境变量设置, 路径添加等改动立刻生效, 而无需打开新的终端会话.
验证环境变量
通过以下 env
命令查看当下的环境变量(environment variable):
shell
env
然后在其中查找是否包含了 M2_HOME
等刚才配置的变量.
当然这个输出通常很多, 可以通过接管道符 |
并使用 grep
过滤一下:
shell
env | grep M2
这样只有带有 M2
字样的行才会显示出来.
验证 java
因为 maven 是依赖 java 的, 是一个 java 应用, 你的云主机应该首先安装并配置好了 java 环境, 通过以下命令检查:
shell
java -version
如果正常输出了 java 版本, 则 OK.
shell
[root@ecs-230d ~]# java -version
java version "21.0.3" 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 21.0.3+7-LTS-152)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.3+7-LTS-152, mixed mode, sharing)
[root@ecs-230d ~]#
验证 mvn 命令
最后通过执行 mvn
命令验证 maven 的安装及配置是否都 OK:
shell
mvn -version
也可以简写为 mvn -v
.
如果出现类似以下输出, 则说明整个安装配置均已 OK:
shell
[root@ecs-230d ~]# mvn -version
Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
Maven home: /usr/lib/apache-maven-3.9.8
Java version: 21.0.3, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk-21-oracle-x64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.10.0-182.0.0.95.r1941_123.hce2.x86_64", arch: "amd64", family: "unix"
关于整个在 linux 主机上安装及配置 maven 的介绍就到这里.