maven多模块创建-安装配置

1、前提

许久没有写文章了,荒废了2年多的时间,在整理的时候,发现Maven还差一篇安装配置的文章,现在开始提笔完善它,参考:https://blog.csdn.net/m0_72803119/article/details/134634164。
—写于2024年4月19日

2、Maven简介

Maven是一个项目管理和构建工具,用于Java开发。它提供了一个统一的构建生命周期,可以自动化构建、测试、部署Java项目。Maven使用一个项目对象模型(POM)来管理项目的依赖关系、构建配置和插件。POM是一个XML文件,描述了项目的相关信息,包括项目的名称、版本、依赖关系、构建插件等。

3、Maven优势

  1. 一致性:Maven提供了一致的构建生命周期和标准的构建过程,使得构建和部署Java项目更加容易和可靠。
  2. 依赖管理:Maven可以自动下载和管理项目的依赖库,减少了手动下载和配置依赖库的复杂性。
  3. 可扩展性:Maven支持插件机制,可以通过插件来扩展Maven的功能,例如代码质量检查、构建报告生成等。
  4. 易于学习和使用:Maven的配置文件POM简单易懂,使得上手和使用Maven更加容易。 Maven的基本使用流程如下:
  5. 创建一个Maven项目:使用Maven的archetype工具可以快速创建一个Maven项目的基本结构。
  6. 编写POM文件:在项目的根目录下创建一个名为pom.xml的文件,用于描述项目的相关信息和配置。
  7. 添加依赖:在POM文件中添加项目的依赖关系,包括核心库、第三方库等。
  8. 执行构建:使用mvn命令执行构建任务,例如编译、测试、打包等。 5
  9. 部署项目:将构建好的项目部署到目标环境中。

总之,Maven是一个功能强大的Java项目管理和构建工具,可以提高Java开发的效率和质量。

4、Maven卸载

查看本机maven版本

mvn -v

找到目录,可直接rm -rf删除,也可直接删除本地目录

5、Maven下载安装

下载地址

https://maven.apache.org/download.cgi

我选的是在这里插入图片描述
说明

Binary: 二进制文件,编译好的可以直接使用的程序,只需要把它解压缩到你想要安装的目录就马上可以使用。
Souce:带源码,需要在计算机上编译后运行,安装的时间会比较长,文件也会大一些。
zip archieve:for windows
tar.gz archive:for mac

直接放在想要放的路径下解压,实例放的目录在

/Users/用户名/Documents/soft/apache-maven-3.9.6
这里的用户名是电脑的名字

6、Maven配置

在~/.bash_profile文件中即可,如果本地shell是zsh,则需要在
~/.zshrc中配置
查看shell命令

echo $SHELL

本机是zsh配置信息如下:

# maven
export MAVEN_HOME=/Users/用户名/Documents/soft/apache-maven-3.9.6
export PATH=$MAVEN_HOME/bin:$PATH

配置命令:

vim ~/.zshrc
插入
export MAVEN_HOME=/Users/用户名/Documents/soft/apache-maven-3.9.6
export PATH=$MAVEN_HOME/bin:$PATH
wq保存
重启shell

配置检查输入mvn -v,检查
在这里插入图片描述

7、一些配置过程中遇到的问题

因为之前安装过maven,jdk这些,后来卸载过一段时间,所以在重新配置的时候总是遇到一些各种各样的问题,我整理了一下,一开始安装上面的安装步骤,在iTerm2上面执行mvn -v的时候总是找不到jdk,后来检查了/.bash_profile和/.zshrc,配置发现之前~/.bash_profile是配置过maven,删掉之后还是不行,后来查看资料说是配置了多个jdk导致,maven分不清是哪个jdk,了解了配置文件的加载过程,才发现在/etc/profile是配置过,之前卸载的时候没有同步删除。

关于配置文件的执行过程

首先在登录时,先执行的是/etc/profile文件。 然后在启动用户目录下的/.bash_profile、/.bash_login或/.profile文件中的其中一个,执行顺序为/.bash_profile、/.bash_login、/.profile。如果~/.bash_profile文件存在的话,一般还会执行/.bashrc文件。若要退出shell时还会执行~/.bash_logout文件。所以不难发现,当在zsh下执行各项命令时,此时~/.zshrc文件则已经执行。而/.bash_profile文件没有执行,所以在其中配置的mvn参数不会加载。其实有两种方法可以解决,一种是在~/.zshrc同步配置,还有一种与第一种类似,就是在~/.zshrc文件中加入source ~/.bash_profile命令即可。原理都是一样,即是在执行zsh相关的文件时会加载到mvn的相关配置。
简单介绍一下各个文件的作用域:

     (1)/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。(2)/etc/bashrc:为每一个运行bash shell的用户执行次文件。当bash shell被打开时,该文件被读取。(3)~/.bash_profile:每个用户都可以使用该文件输入专用与自己使用的shell信息,当用户登录时,该问价仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件。(4)~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该 文件被读取。(5)~/.bash_logout:当每次退出系统时(退出bash shell),执行该文件。另外,/etc/profile中设定的变量可以作用于任何用户,而~/.bashrc等中设定的变量只能继承/etc/profile中的变量,是“父子”关系。(6)~/.bash_profile是交互式、login方式进入bash运行的~/.bashrc是交互式non-login方式进入bash运行的通常二者设置大致相同,所以通常前者会调用后者。

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

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

相关文章

在 Slurm 上运行 Jupyter

1. 背景介绍 现在的大模型训练越来越深入每个组了,大规模集群系统也应用的愈发广泛。一般的slurm系统提交作业分为2种,一种是srun,这种所见即所得的申请方式一般适用于短期的调试使用,大概一般允许的时间从几个小时到1天左右&…

自然语言处理: 第二十八章大模型基底之llama3

项目地址: meta-llama/llama3: The official Meta Llama 3 GitHub site 前言 LLaMa系列一直是人们关注的焦点,Meta在4月18日发布了其最新大型语言模型 LLaMA 3。该模型将被集成到其虚拟助手Meta AI中。Meta自称8B和70B的LLaMA 3是当今 8B 和 70B 参数规模的最佳模…

Elasticsearch集群部署(Linux)

1. 准备环境 这里准备三台Linux虚拟机,用于配置Elasticsearch集群和部署可视化工具Kibana。 角色IP域名集群名称节点名称版本操作系统ES192.168.243.100linux100cluster-eses-node-1007.12.0CentOS 7192.168.243.101linux101cluster-eses-node-101192.168.243.102…

ISP比普通的静态代理相比有什么优势?

ISP(Internet Service Provider),即互联网服务提供商,是向广大用户综合提供互联网接入业务、信息业务、增值业务的电信运营商。而静态代理则是一个固定不变的代理IP地址,具有稳定性强、兼容性好和管理方便等特点。当我…

分布式与一致性协议之拜占庭将军问题(三)

拜占庭将军问题 叛将先发送消息 如果是叛将楚先发送作战消息,干扰作战计划,结果会有所不同吗? 在第一轮作战信息协商中,楚向苏秦发送作战指令"进攻",向齐、燕发送作战指令"撤退",如图所示(当然还…

基于Python+Selenium+Pytest的Dockerfile如何写

使用 Dockerfile 部署 Python 应用程序与 Selenium 测试 在本文中,我们将介绍如何使用 Dockerfile 部署一个 Python 应用程序,同时利用 Selenium 进行自动化测试。我们将使用官方的 Python 运行时作为父镜像,并在其中安装所需的依赖项和工具…

【白菜学习问问问系列】if __name__ == ‘__main__‘:怎么理解

可以让.py文件既可以当成一个模块调用,也可以单独的作为一个函数执行

用html画一个四叶草

<!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>四叶草</title> <link href"" rel"stylesheet"> <link rel"stylesheet" href"css/style.css&q…

经典的目标检测算法有哪些?

一、经典的目标检测算法有哪些&#xff1f; 目标检测算法根据其处理流程可以分为两大类&#xff1a;One-Stage&#xff08;单阶段&#xff09;算法和Two-Stage&#xff08;两阶段&#xff09;算法。以下是一些经典的目标检测算法&#xff1a; 单阶段算法: YOLO (You Only Loo…

vue项目使用百度地图

打开百度地图开放平台 百度地图开放平台 | 百度地图API SDK | 地图开发 在控制台新建应用 复制访问应用的ak 可修改地图样式 使用部分 <!-- 引入地图 --><div class"main-aside"><div id"b-map-container"></div></div> …

Stable Diffusion WebUI 使用 LoRA 调整风格——详细教程

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 大家好&#xff0c;我是水滴~~ 本教程旨在深入探讨 LoRA 模型的奥秘&#xff0c;涵盖其基本概念、独特作用以及实操指南。我们将从下载和使用LoRA的步…

详解数据结构:队列(含栈与队列扩展)

一、顺序队列 有一种线性序列&#xff0c;特点是先进先出&#xff0c;这种存储结构称为队列。队列也是一种线性表&#xff0c;只不过它是操作受限的线性表&#xff0c;只能再两端操作&#xff1a;一端进、一端出。进的一端称为队尾&#xff0c;出的一端称为队头。队列可以用顺…

贪心算法在单位时间任务调度问题中的应用

贪心算法在单位时间任务调度问题中的应用 一、引言二、问题描述与算法设计三、算法证明四、算法实现与效率分析五、C语言实现示例六、结论 一、引言 单位时间任务调度问题是一类经典的优化问题&#xff0c;旨在分配任务到不同的时间槽中&#xff0c;使得某种性能指标达到最优。…

RTU遥测终端为城市排水安全保驾护航!

近年来&#xff0c;全球气候变迁与城市化进程不断加速&#xff0c;导致强降雨事件频发&#xff0c;道路低洼地带、下穿式立交桥和隧道等区域在暴雨中常易积水&#xff0c;严重阻碍了人民的出行&#xff0c;甚至危及生命与财产安全。而传统的排水管网管理方式已难以适应现代城市…

elasticsearch-8.1.0安装记录

目录 零、版本说明一、安装二、使用客户端访问 零、版本说明 centos [rootnode1 ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)elasticsearch elasticsearch-8.1.0-linux-x86_64一、安装 systemctl stop firewalld.servicesystemctl disable firewal…

MATLAB 数据类型

MATLAB 数据类型 MATLAB 不需要任何类型声明或维度语句。每当 MATLAB 遇到一个新的变量名&#xff0c;它就创建变量并分配适当的内存空间。 如果变量已经存在&#xff0c;那么MATLAB将用新内容替换原始内容&#xff0c;并在必要时分配新的存储空间。 例如&#xff0c; Tota…

【Linux】深入理解Linux文件系统与日志分析

目录 一、inode与block 1.block与inode概述 2.inode的内容 3.inode号码 4.inode的大小 5.访问文件的简单流程 6.inode的特殊作用 7.通过indoe号删除rm常规方法删除不掉的文件 二、硬链接和软链接 三、恢复误删除的文件 1.恢复EXT类型的文件 示例 2.xfs类型文件备份…

通信场景:动态调整对象池大小

通信场景&#xff1a;动态调整对象池大小 文章目录 通信场景&#xff1a;动态调整对象池大小前言历史通信量队列长度系统资源响应时间结语 前言 在做通信相关的开发时&#xff0c;使用对象池管理用于存放接收数据的内存块&#xff0c;是一种常见的优化技术。特别是在需要频繁分…

jvm中的引用类型

Java中的引用类型 1.强引用 一个对象A被局部变量、静态变量引用了就产生了强引用。因为局部变量、静态变量都是被GC Root对象关联上的&#xff0c;所以被引用的对象A&#xff0c;就在GC Root的引用链上了。只要这一层关系存在&#xff0c;对象A就不会被垃圾回收器回收。所以只要…

洛基计划project loki加速器推荐 免费低延迟联机加速器分享

洛基计划project loki加速器推荐 免费低延迟联机加速器分享 《洛基计划》是一款团队PVP游戏&#xff0c;融合有动作、英雄设计、大逃杀等元素&#xff0c;由前拳头游戏、Bungie和暴雪娱乐员工创立的新工作室Theorycraft Games共同发布。《洛基计划》汇集了一些大型团队PVP游戏…