linux 云主机下载压缩包安装配置 maven 实录(华为云 EulerOS)

本想通过 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/: 这个选项指定了目标目录, 即解压后文件存放的位置. -Cchange 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 的介绍就到这里.

相关推荐
意疏8 分钟前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
BLEACH-heiqiyihu15 分钟前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器
飞升不如收破烂~20 分钟前
Spring boot常用注解和作用
java·spring boot·后端
秦老师Q21 分钟前
Java基础第九章-Java集合框架(超详细)!!!
java·开发语言
计算机毕设源码qq-383653104122 分钟前
(附项目源码)Java开发语言,215 springboot 大学生爱心互助代购网站,计算机毕设程序开发+文案(LW+PPT)
java·开发语言·spring boot·mysql·课程设计
ashane131425 分钟前
Java list
java·windows·list
袁庭新32 分钟前
Cannal实现MySQL主从同步环境搭建
java·数据库·mysql·计算机·java程序员·袁庭新
无尽的大道33 分钟前
深入理解 Java 阻塞队列:使用场景、原理与性能优化
java·开发语言·性能优化
岁岁岁平安1 小时前
springboot实战(15)(注解@JsonFormat(pattern=“?“)、@JsonIgnore)
java·spring boot·后端·idea
Oak Zhang1 小时前
TheadLocal出现的内存泄漏具体泄漏的是什么?弱引用在里面有什么作用?什么情景什么问题?
java·系统安全