maven多模块创建-安装配置

news2024/12/22 20:50:31

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://www.coloradmin.cn/o/1634598.html

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

相关文章

使用量排名前50的GPTs趋势和特征

Chatgpt的gpt商店已经有几千gpts了。目前哪些gpts比较受欢迎呢?有哪些趋势和投资呢? 根据whatplugin.ai(截止日期为2024年3月),使用量最多的50个gpts数据分析结果如下: GPTs类型的分布情况如下: 图像生成…

智慧能源数据监控平台

随着科技的飞速发展,能源管理已逐渐从传统的粗放型向精细化、智能化转变。在这个转型过程中,HiWoo Cloud平台的智慧能源数据监控平台以其独特的技术优势和创新理念,正引领着能源管理的新潮流。 一、智慧能源数据监控平台的概念 智慧能源数据…

记录一次大数据量接口优化过程

问题描述 记录一次大数据量接口优化过程。最近在优化一个大数据量的接口,是提供给安卓端APP调用的,因为安卓端没做分批次获取,接口的数据量也比较大,因为加载速度超过一两分钟,所以导致接口超时的异常,要让…

【论文阅读】IPT:Pre-TrainedImageProcessingTransformer

Pre-TrainedImageProcessingTransformer 论文地址摘要1. 简介2.相关作品2.1。图像处理2.2。 Transformer 3. 图像处理3.1. IPT 架构3.2 在 ImageNet 上进行预训练 4. 实验4.1. 超分辨率4.2. Denoising 5. 结论与讨论 论文地址 1、论文地址 2、源码 摘要 随着现代硬件的计算能…

python数据可视化:雷达图

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 python数据可视化: 雷达图 选择题 关于以下代码输出的雷达图中,以下说法正确的是? import numpy as np import matplotlib.pyplot as plt from pylab impor…

【酱浦菌-爬虫项目】爬取学术堂宏观经济学论文原文

前言 首先给大家放出完整代码,然后下面就是用jupyter写的代码。实际上在写的时候用的是jupyter写的,因为感觉jupyter写的时候更加的流畅,每一步运行的细节都能保存下来,更方便学习理解。 完整代码: import os impo…

智能售货机:塑造未来零售新貌

智能售货机:塑造未来零售新貌 随着科技的飞速跃进,零售业态经历了一场深刻的转型,其中,智能售货机凭借其创新技术和灵活应用,正逐步成为新零售领域的焦点。本文旨在探讨智能售货机的市场演进路径、最新趋势&#xff0…

【AIGC调研系列】LLaVA++整合Phi-3和Llama-3能够实现什么

LLaVA能够为Phi-3和Llama-3带来的主要好处包括: 视觉处理能力的增强:通过整合Phi-3和Llama-3模型,创建了具备视觉处理能力的Phi-3-V和Llama-3-V版本,这意味着这些模型现在能够理解和生成与图像相关的内容[1]。这种能力的增加&…

智慧旅游驱动行业革新:智能技术引领服务全面升级,匠心打造高品质、个性化旅游新体验

一、引言 随着科技的飞速发展和信息化程度的不断提高,智慧旅游正逐渐成为旅游业发展的新趋势。智慧旅游,顾名思义,是以智能化技术为支撑,通过大数据、云计算、物联网、人工智能等先进技术的应用,实现旅游服务的全面升…

Web前端一套全部清晰 ⑤ day3 列表 表格 表单标签 综合案例

人生是一直向前无法倒退的旅程&#xff0c;所以可以偶尔回头&#xff0c;但一定要往前看 —— 24.4.29 一、综合案例1-体育新闻列表 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport…

2024-04学习笔记

1.sql优化-子查询改为外连接 1.改之前 改之前是这样&#xff0c;那针对查出来的每一条数据&#xff0c;都要执行一次箭头所指的函数 执行的sql很慢 2.改之后 改之后是这样&#xff0c;整体做外连接&#xff0c;不用每一条都再执行一次查询 执行时间缩短了好几倍 2.Mybatis中…

21.Nacos集群搭建

模拟Nacos三个节点&#xff0c;同一个ip,启动三个不同的端口&#xff1a; 节点 nacos1, 端口&#xff1a;8845 节点 nacos2, 端口&#xff1a;8846 节点 nacos3, 端口&#xff1a;8847 1.搭建数据库&#xff0c;初始化数据库表结构 这里我们以单点的数据库为例 首先新建一…

Facebook全攻略:从注册到养号再到防封,一篇搞定!

作为海外热门的社交媒体平台之一&#xff0c;Facebook已经成为品牌营销的重要渠道。很多新手小白在拿到Facebook账号后还是不知道如何操作&#xff0c;今天为大家准备了一份Facebook操作全攻略&#xff0c;从注册、养号到防封号&#xff0c;让你的Facebook跨境之旅更加顺畅&…

小程序地理位置接口怎么开通?

小程序地理位置接口有什么功能&#xff1f; 如果我们提审后驳回理由写了“当前提审小程序代码包中地理位置相关接口( chooseAddress、getLocation )暂未开通&#xff0c;建议完成接口开通后或移除接口相关内容后再进行后续版本提审”&#xff0c;如果你也碰到类似问题&#xf…

Ansys Speos|进行智能手机镜头杂散光分析

本例的目的是研究智能手机Camera系统的杂散光。杂散光是指光向相机传感器不需要的散光光或镜面光&#xff0c;是在光学设计中无意产生的&#xff0c;会降低相机系统的光学性能。 在本例中&#xff0c;光学透镜系统使用Ansys Zemax OpticStudio (ZOS)进行设计&#xff0c;并使用…

使用 GitHub Actions 实现项目的持续集成(CI)

目录 什么是 GitHub Actions 基础概念 Workflow 文件 Workflow 语法 实例&#xff1a;编译 OpenWrt 什么是 GitHub Actions GitHub Actions 是 GitHub 推出的持续集成&#xff08;Continuous Integration&#xff0c;简称 CI&#xff09;服务它允许你创建自定义工作流&am…

源码编译framework.jar 并成功导入android studio 开发

一、不同安卓版本对应路径 Android N/O: 7 和 8 out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar Android P/Q: 9 和 10 out/soong/.intermediates/frameworks/base/framework/android_common/combined/framework.jar Android R: 11以上 out/so…

Qt下使用7Z源码进行压缩和解压缩

7Z压缩是一款常用的压缩算法和工具&#xff0c;本文主要介绍一款在qt环境下进行编译的压缩方法。 本人测试是可以正常跑通的&#xff0c;具体代码部分请下载&#xff1a;下载链接&#xff0c;提取码&#xff1a;ev9t 7z源码网址&#xff1a;7-Zip 7z简介&#xff1a; 7z 是…

有趣的大模型之我见 | Llama AI Model

Llama 开源吗&#xff1f; 我在写《有趣的大模型之我见 | Mistral 7B 和 Mixtral 8x7B》时曾犹豫&#xff0c;在开源这个事儿上&#xff0c;到底哪个大模型算鼻祖&#xff1f;2023 年 7 月 18 日&#xff0c;Meta 推出了最受欢迎的大型语言模型&#xff08;LLM&#xff09;的第…

opencv_23_高斯模糊

void ColorInvert::gaussian_blur(Mat& image) { Mat dst; GaussianBlur(image, dst, Size(0, 0), 15); // Size(2, 2), imshow("图像模糊2", dst); }