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

news2024/9/26 5:23:22

本想通过 yum install maven 直接安装的, 方便省事, 但报错说没找到, 于是只能手动安装了, 把整个过程记录了一下, 包括下载, 解压, 配置及验证的全过程, 并对用到的命令及参数作了详细说明, 需要的同学可以参考.

maven 官网找到下载链接

首先要去到 maven 的官网, https://maven.apache.org/, 右边有个 download 链接, 点击进去找到最新安装包

download maven

找到带 bin 字样的安装包, 这里选的就是第一个

复制 maven 下载链接

复制其下载链接, 如下: 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 接上刚才的链接, 直接下载, 如下:

wget https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz

如果一切正常, 最后就会显示文件已经被下载保存到本地了, 如下所示:

[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 解压缩

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 命令来编辑它:

vi /etc/profile

该文件通常已经配置了一些内容, 不要去改已有的, 定位到文件的最下面, 在文件末尾增加以下内容, 然后保存退出:

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 搜索中.

export M2_HOME=/usr/lib/apache-maven-3.9.8
export PATH=$M2_HOME/bin:$PATH

使环境变量生效

环境变量添加后不会自动生效, 你需要执行如下命令使它立刻生效:

. /etc/profile

或者是

source /etc/profile

点命令(.) 和 source 命令的作用是相同的, 都是加载或重新加载 /etc/profile 文件的内容到当前的 shell 环境中, 使得所做的环境变量设置, 路径添加等改动立刻生效, 而无需打开新的终端会话.

验证环境变量

通过以下 env 命令查看当下的环境变量(environment variable):

env

然后在其中查找是否包含了 M2_HOME 等刚才配置的变量.

当然这个输出通常很多, 可以通过接管道符 | 并使用 grep 过滤一下:

env | grep M2

这样只有带有 M2 字样的行才会显示出来.

验证 java

因为 maven 是依赖 java 的, 是一个 java 应用, 你的云主机应该首先安装并配置好了 java 环境, 通过以下命令检查:

java -version

如果正常输出了 java 版本, 则 OK.

[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:

mvn -version

也可以简写为 mvn -v.

如果出现类似以下输出, 则说明整个安装配置均已 OK:

[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 的介绍就到这里.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2077490.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV+Python自动填涂机读卡

接上一篇OpenCVPython识别机读卡-CSDN博客,既然可以识别机读卡填涂答案了,将标准答案绘制到机读卡上也就简单了。 工作原理 1.答题区域为整张图片最大轮廓,先找出答题区域。 2.答题区域分为6行,每行4组,第6行只有1组…

【Java设计模式】抽象文档模式:以灵活性简化数据处理

文章目录 抽象文档设计模式的意图抽象文档模式的详细解释及实际示例Java中抽象文档模式的编程示例抽象文档模式类图Java中何时使用抽象文档模式抽象文档模式的优点和权衡源码下载参考和致谢 抽象文档设计模式的意图 Java中的抽象文档设计模式是一种关键的结构设计模式&#xf…

【mysql集群之组复制】

目录 一、 mysql高可用之组复制 (MGR)组复制单主和多主模式实现mysql的组复制 二、 mysql-router(mysql路由)实现负载均衡 一、 mysql高可用之组复制 (MGR) MySQL Group Replication(简称 MGR )是 MySQL 官方于 2016 年 12 月推出的一个全新的高可用与高…

OpenHarmony南向开发:SmartPerf-Device使用说明

简介 SmartPerf 端是一款基于 OpenHarmony 系统开发的性能功耗测试工具,操作简单易用,可提供包括性能、功耗的关键 KPI 指标,给出具体指标的测试值,包括采集设备的 FPS、CPU、GPU、Ftrace 等指标数据; 目前 SmartPer…

uniapp之app版本更新,整体更新和热更新

目录 需求: 版本更新有两种更新模式: 实现: 前提: 热更新: 打包wgt包:菜单->发行->原生App-制作移动App资源升级包 代码逻辑: 整体更新: 实际项目开发: 需求&#xf…

Linux网络编程——C/C++Web服务器(二):IO多路复用select/poll/epoll实现服务器监听多客户端事件

环境配置:windows电脑用户可以安装WSL配置Linux环境,并且安装vscode及wsl的插件通过vscode连接本机电脑的Linux。 前置内容: Linux网络编程——C/CWeb服务器(一):不断创建新线程处理多客户端连接和通信-C…

代码随想录算法训练营第二十七天(贪心 一)

硬拖拖到现在才写完。。。 关于贪心: 文章链接: 代码随想录 文章摘要: 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 贪心算法并没有固定的套路。 和其他算法不同,贪心没有能看出局部最优是否能推出整体最优的通法。 用来验证可不可以…

软件渗透测试必要性简析,第三方软件测试机构如何进行渗透测试?

在信息技术迅速发展的今天,软件渗透测试逐渐成为了确保信息安全的重要环节。软件渗透测试指的是对系统或应用程序进行模拟攻击,以发现其潜在的安全风险与脆弱性。不同于传统的安全审计,渗透测试更注重实际攻击过程和攻击者的视角,…

IO进程线程8月26ri

1&#xff0c;思维导图 2&#xff0c;用两个进程分别复制文件的上下两部分到另一个文件 #include<myhead.h> int main(int argc, const char *argv[]) {int fpopen("./1.txt",O_RDONLY);if(fp-1){perror("open");return -1;}int countlseek(fp,0,SE…

如何在 mind+ 中编写 python 程序

打开Mind&#xff0c;点击窗口右上角的【Python模式】按钮&#xff0c;由实时模式切换到Python模式。 将默认的循环执行模块拖动到左边的模块区删除。 点击【变量】&#xff0c;将【打印【Hello World】】模块拼接到【Python主程序开始】下方。 将【获取输入&#xff0c;提示语…

redis(未授权访问漏洞)

环境准备 下载并安装Redis 首先&#xff0c;下载Redis的源代码包并解压&#xff1a; wget http://download.redis.io/releases/redis-2.8.17.tar.gz tar xzf redis-2.8.17.tar.gz cd redis-2.8.17接着&#xff0c;编译安装Redis&#xff1a; 编译完成后&#xff0c;进入src目录…

自动化任务工具 | zTasker v1.97.1 绿色版

在自动化任务管理领域&#xff0c;一款名为zTasker的软件以其卓越的性能和易用性脱颖而出。今天&#xff0c;电脑天空将为大家详细介绍这款软件的亮点和使用场景。 功能特点 1. 轻量级设计&#xff0c;快速启动 zTasker以其小巧的体积和快速的启动速度&#xff0c;为用户提供…

模型 7S分析法(麦肯锡)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。组织全面诊断&#xff0c;战略协同优化。 1 7S分析法(麦肯锡)的应用 1.1 邮储银行的转型&#xff1a;基于麦肯锡7S模型的竞争力提升 中国邮储银行面临着激烈的金融行业竞争&#xff0c;为了迅速提升…

考研数学 高等数学----导数应用

核心框架 前置知识 正式内容 知识点1: 知识点2: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知识点: 知…

嵌入式系统课后习题(带答案)

资料截图&#xff08;部分&#xff09;&#xff1a; &#x1f680; 获取更多详细资料可点击链接进群领取&#xff0c;谢谢支持&#x1f447; 点击免费领取更多资料

Ant Design Vue中Modal.confirm无法自动关闭

温馨tips:着急看解决方法可跳过碎碎念~ 前两天经理扔给我一个问题&#xff1a;“这个弹窗怎么关不上了&#xff1f;” 我怀着无所谓的心态&#xff1a;小意思啦&#xff0c;5分钟之内解决完~ …当然flag是不能随便乱立的 拉下来项目&#xff08;原神启动&#xff08;不是&…

@ohos.systemParameterEnhance系统参数接口调用:获取系统属性

在去年的文章&#xff0c;笔者介绍了如何使用修改修改OpenHarmony 设备厂家名称 、硬件版本号 等系统属性&#xff0c;本文介绍一下在应用层怎么获取系统属性。 开发环境 DAYU200 rk3568开发板OpenHarmony 4.1r API 10 (full sdk)DevEco Studio 4.1 Release 开发步骤 1.首先…

浅谈【数据结构】树与二叉树之哈夫曼树

目录 1、哈夫曼树 1.1哈夫曼编码 1.2哈夫曼树 1.3构建一棵哈夫曼树 谢谢帅气美丽且优秀的你看完我的文章还要点赞、收藏加关注 没错&#xff0c;说的就是你&#xff0c;不用再怀疑&#xff01;&#xff01;&#xff01; 希望我的文章内容能对你有帮助&#xff0c;一起努力吧…

【FPGA数字信号处理】什么是信号?

在数字信号处理的奇妙世界里&#xff01;“信号”是一切的基础&#xff0c;理解了信号&#xff0c;就相当于拿到了开启数字信号处理大门的钥匙。 今天&#xff0c;就让我们一起深入探究数字信号处理基础中的“信号”。 一、信号的基本概念 信号&#xff0c;简单来说&#xf…

【持续更新】Mχ Plaayer Pro 1.86.0安卓知名播放器最新免费高级修改版

Mχ Plaayer Pro MOD 版本免费 APK&#xff0c;专为安卓手机和平板打造。这是一款功能强大的视频播放器&#xff0c;具备先进的硬件加速技术和字幕支持功能。 • 硬件加速 - 新增 HW 解码器帮助更多视频格式实现硬件加速。 • 多核心解码 - Mχ Plaayer 是首款支持多核心解码的…