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

本想通过 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 48s2024-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_HOMEM2="$M2_HOME/bin"
MAVEN_OPTS="-Xms256m -Xmx512m"
export M2 MAVEN_OPTSPATH=$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.rhkb.cn/news/412465.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产网卡品牌崛起,做好网络信息安全的“守门人”

在信息技术日新月异的时代背景下,信息安全不仅关乎个人隐私保护,更是国家安全与经济发展的基石。LR-LINK联瑞凭借其前瞻性的视野和深厚的研发实力,成功自主研发出全国产化的FPGA(现场可编程门阵列)网闸隔离卡方案&…

AI编码公司Magic获得近5亿美元巨额投资

Magic,一家专注于生成式人工智能AI编码的初创公司,最近在AI领域取得了显著的成就。该公司通过创建模型来生成代码并自动执行软件开发任务,成功吸引了包括前谷歌CEO埃里克施密特在内的一系列知名投资者的关注,并完成了一轮3.2亿美元…

Linux 下查找运行中的 Java 进程及 .jar 文件位置

在 Linux 环境中,有时我们需要查找正在运行的 Java 进程以及它们对应的 .jar 文件位置。本文将介绍如何使用命令行工具来实现这一目标。 前言 在 Linux 系统中,我们经常需要监控正在运行的应用程序,特别是在出现问题时,了解应用程…

Hook 框架 Frida

文章目录 Hook 框架 FridaHook框架介绍下载和安装Frida 的使用手机端启动frida服务端电脑端配置简单使用python的hook方式js的hook方式 Hook 框架 Frida Hook框架介绍 Hook 框架是一种技术,用于在运行时拦截和修改应用程序的行为。 通过 Hook,你可以劫…

鸿蒙界面开发(八):Grid网格布局Badge角标组件

Badge角标组件 在目标组件的外层包裹一层Badge角标组件 支持位置:右上,左,右 也可以使用绝对定位实现更灵活的角标位置。 Badge({count:1,//角标数值,角标数值为0时不展示position:BadgePosition.RightTop,//角标位置&#xff0…

换毛季猫咪化身掉毛怪,宠物浮毛如何清理?推荐用宠物空气净化器

我家现在有三只毛孩子,养宠的幸福是三倍,除毛的烦恼也是三倍。尤其还有两只是银渐层,掉毛量实在是太夸张了,衣服、地板、水杯家里到处都是。我也每天早晚都给它们梳毛,卫生也定期清理,可还是浮毛满天飞。 …

kafka集群

cd /opt/software 把kafka压缩包拉进来 并解压到/usr下 tar -xzvf /opt/software/kafka_2.12-2.7.0.tgz -C /usr/ 改名 mv /usr/kafka_2.12-2.7.0/ /usr/kafka 配置环境变量 vim /etc/profile大写G定位到最后一行 在 o 在下一行添加kefka环境变量export JAVA_HOME/usr…

店招起名“大润發”,侵犯“大润发”商标权赔偿8000元!

近日某干果店招为“大润發水果干果批发”的店铺,因侵犯“大润发”注册商标专用权,赔偿原告所属主体共计人民币8000元,有些人起店招名称喜欢傍大牌,这样很容易侵犯商标权。 有些聪明的人会想,大牌商标是繁体&#xff0c…

ssrf实现

一、SSRF (Server-side Request Forge, 服务端请求伪造) 1、概念: 它是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。正是因为它是由服务端发起的,所…

【GPT】Coze使用开放平台接口-【4】创建机器人

在前面三篇,我们分别创建了插件,插件里面添加了多个工具。接着,我们把插件添加到工作流内,成为一个开放平台API的调用节点,从而创建出一条业务流。分别是,语音伪造检测工作流,以及通话语音内容分…

【JVM】亿级流量调优(二)

亿级流量调优 指针压缩 -XX:-UseCompressedOops指针压缩技术只有64位机器才有。jdk6以后引入的技术,默认是开启的 关闭指针压缩的情况下 通过HSDB用Memory Viewer查看该对象在内存中的分配地址发现类型指针占8字节,0x3其实是数组的长度,前…

全面解析:动态住宅代理的关键优势

在大数据时代的背景下,代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性,而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…

代码随想录第十天——LeetCode 150. 逆波兰表达式求值、239. 滑动窗口最大值、347.前 K 个高频元素

150. 逆波兰表达式求值 力扣题目链接(opens new window) 根据 逆波兰表示法,求表达式的值。 有效的运算符包括 , - , * , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是…

夜深了,赶紧根据软件系统建模建设一个房屋租赁服务系统,坐上收租大佬宝座,走上人生巅峰

目录 案例 【题目】 【问题 1】(12 分) 【问题 2】(5 分) 【问题 3】(8 分) 【答案】 【问题 1】答案 【问题 2】答案 【问题 3】答案 相关推荐 案例 阅读以下关于软件系统建模的叙述,在答题纸上回答问题 1 至问题 3。 【题目】 某公司欲建设一个房屋租赁服务…

如何在你vs code和ide编译器使用AI

vs code举例。先看效果图 2个步骤轻松拥有 1、注册豆包AI账号:点击注册 2、在vs code中安装: 第一种方法:快速安装 第二种方法:手动安装, 第1步:安装 Visual Studio Code 后,左侧导航栏上点击扩展。 第2步…

【C/C++】C语言中的内存分布

在C语言中,内存分布主要可以分为以下几个区域: 栈(Stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等。 堆(Heap):一般由程序员分配和释放,若…

SpringBoot异常处理原理分析

springboot默认机制 错误处理的自动配置都在ErrorMvcAutoConfiguration中,两大核心机制: SpringBoot 会自适应处理错误,响应页面或JSON数据 SpringMVC的错误处理机制依然保留,MVC处理不了,才会交给boot进行处理 发生…

K 个一组翻转链表

题目 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 进阶: 你可以设计一个只…

2024年【A特种设备相关管理(A4电梯)】考试报名及A特种设备相关管理(A4电梯)考试资料

题库来源:安全生产模拟考试一点通公众号小程序 A特种设备相关管理(A4电梯)考试报名是安全生产模拟考试一点通总题库中生成的一套A特种设备相关管理(A4电梯)考试资料,安全生产模拟考试一点通上A特种设备相关…

AI模型:追求全能还是专精?

近日,OpenAI预计在秋季推出代号为“草莓”的新AI。从专注于数学问题到处理主观营销策略,"草莓"模型展现出惊人的多样性。而这种全能型 AI 是否代表了未来趋势?相比专攻于某一领域的专业型AI产品,全能型AI产品是否一定具…