MAVEN利器:一文带你了解MAVEN以及如何配置

news/2024/5/18 13:01:23 标签: maven, java, 学习, udp, 职场和发展, 算法

前言:

强大的构建工具——Maven。作为Java生态系统中的重要组成部分,Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用,Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等任务。

 

文章目录

前言:

maven%E4%BB%8B%E7%BB%8D%EF%BC%9A-toc" style="margin-left:0px;"> maven介绍:

maven%E7%9A%84%E7%BB%93%E6%9E%84%EF%BC%9A-toc" style="margin-left:0px;">maven的结构:

maven%EF%BC%9F-toc" style="margin-left:0px;">为什么需要maven

maven%EF%BC%9F-toc" style="margin-left:0px;">如何配置maven

总结:


maven%E4%BB%8B%E7%BB%8D%EF%BC%9A" style="background-color:transparent;"> maven介绍:

Maven是一个流行的Java构建工具和项目管理工具,由Apache软件基金会开发和维护。它为开发人员提供了一个简单而强大的方式来构建、管理和发布Java项目。Maven基于项目对象模型(Project Object Model,POM)的概念,通过一个XML文件将项目的依赖关系、构建配置和其他元数据进行描述。

Maven的主要功能包括依赖管理项目构建测试和部署。通过声明项目的依赖关系,Maven可以自动下载所需的库文件,并管理它们的版本。它使用约定的目录结构来管理项目代码、资源文件和配置文件,简化了项目的组织和维护。Maven还提供了一套强大而灵活的插件系统,可以扩展工具的功能。

maven%E7%9A%84%E7%BB%93%E6%9E%84%EF%BC%9A" style="background-color:transparent;">maven的结构:

Maven的结构由中央仓库和私有仓库组成。

  1. 中央仓库:中央仓库是Maven的官方仓库,存储了大量的开源Java库和插件。它是默认的仓库,当Maven构建项目时,Maven会自动从中央仓库下载项目所需的依赖库。中央仓库具有广泛的覆盖范围,包含了许多常见的开发库和工具,例如JUnit、Log4j等。

  2. 私有仓库:私有仓库是由开发者或组织自行管理的仓库,在其中存储特定项目或机构的特定依赖库和插件。私有仓库允许开发人员将自己的库和插件上传到该仓库,并共享给团队成员或其他开发者使用。

Maven使用坐标(Coordinates)来标识依赖库和插件。坐标包括组织(Group)、名称(Artifact)、版本(Version)等信息,用于在仓库中唯一标识一个库或插件。

当Maven构建项目时,它会根据项目的POM文件中的依赖配置,从中央仓库或私有仓库下载所需的依赖库和插件。如果某个依赖在本地仓库中不存在,则Maven会自动从远程仓库下载,并缓存在本地仓库中供后续使用。

私有仓库通常用于存储内部开发的库、第三方商业库或特定版本的库等。为了使用私有仓库中的依赖库,开发人员需要在项目的POM文件中配置私有仓库的地址。

maven%EF%BC%9F" style="background-color:transparent;text-align:justify;">为什么需要maven

  1. 依赖管理:Maven能够自动解决项目的依赖关系,并管理它们的版本。它可以自动下载和更新所需的库文件,简化了项目的依赖管理过程。

  2. 项目构建:Maven提供了一套标准化的构建生命周期和约定的目录结构,使得项目构建过程更加简洁、标准和可重复。开发人员只需定义好项目的POM文件,Maven就可以自动执行所需的构建任务。

  3. 插件生态系统:Maven拥有庞大的插件生态系统,可以扩展工具的功能。开发人员可以通过插件来执行各种任务,如代码检查、测试覆盖率分析、静态分析等,从而提高项目的质量和稳定性。

  4. 团队协作:Maven使用标准化的配置文件和依赖管理机制,简化了团队协作的难度。开发人员可以共享和重用项目的配置和依赖信息,提高团队开发效率。

  5. 跨平台性:由于Maven是基于Java的工具,因此它具有很好的跨平台性。开发人员可以在不同的操作系统上使用Maven进行项目构建和管理,如Windows、Mac和Linux等。

  6. 社区支持:Maven是一个开源项目,拥有庞大的社区支持。开发人员可以从社区中获取丰富的文档、教程和解决方案,解决问题和提升技能。

maven%EF%BC%9F" style="background-color:transparent;">如何配置maven

1.首先我们要在官网下载好maven压缩包:Maven – 下载 Apache Maven

 windows的就下载红色箭头的这个版本

 下载之后进行解压缩我们就可以得到这样一个文件:

  • bin目录包含了执行Maven命令的可执行文件,允许你在命令行中运行Maven任务。
  • boot目录包含了Maven的启动类加载器和相关文件,它们帮助Maven正确加载和启动。
  • conf目录包含了Maven的配置文件,你可以在这里配置Maven的行为和设置。
  • lib目录包含了Maven的依赖库文件,包括各种插件和组件。

2. 对conf目录中的setting做些许更改:

(1).添加私有仓库地址,用来存储库和插件

我们一般会选择在maven包的统计目录下创建一个文件夹,以此文件夹的地址作为私有仓库的地址,并添加到conf文件夹中的setting中

随便用一个编译器打开,这里我选择的是VS code

在55行添加如图所示内容,红色框中的为自己刚才确定的私有仓库的文件夹的地址。

(2).添加镜像地址,以此加速从中央仓库中下载库和插件,这里我们采用阿里的镜像地址

此操作仍然是在setting中

 这里我写出来方便大家粘贴复制:

<mirror>
      <id>alimaven</id> 
       <name>aliyun maven</name> 
       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
</mirror>

此操作结束后,先保存输入内容,之后再关闭编辑文件。

3.将maven内的bin包的地址复制下来,添加到PATH系统环境变量中。

 

 这么一套下来我们就成功的配置了maven到自己的计算机里面,如果想要验证,可以在cmd界面使用

mvn -v

进行验证

如果出现一下类似界面,就是配置成功:

总结:

Maven是一个强大的项目管理和构建工具,通过依赖管理、标准项目结构、构建生命周期和插件系统提供了高效的开发环境。配置Maven到计算机只需下载并设置环境变量,然后就可以利用其优势,自动解决依赖、管理项目结构、执行构建任务和添加插件。通过使用Maven,开发人员可以专注于业务开发,提高项目的可维护性和可靠性,无论项目规模大小都是有价值的工具。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

 


http://www.niftyadmin.cn/n/4943247.html

相关文章

Leetcode No.53 Maximum Subarray

参考资料&#xff1a; 考点&#xff1a;子串 & 动态规划 & [题干] Input: nums [-2,1,-3,4,-1,2,1,-5,4] Output: 6 Explanation: The subarray [4,-1,2,1] has the largest sum 6.1. 心路历程 这道题非常经典&#xff0c;蕴含的思想也是精巧无比。 2. 正解 简单来说官…

css学习3(三种样式表与样式控制优先级)

1、外部样式表&#xff1a;当样式需要应用于很多页面时&#xff0c;外部样式表将是理想的选择。在使用外部样式表的情况下&#xff0c;你可以通过改变一个文件来改变整个站点的外观。每个页面使用 <link> 标签链接到样式表&#xff0c;也要放到<head>中。 2、外部…

2023年京东榨汁机行业数据分析(京东数据开放平台)

如今&#xff0c;随着消费不断升级&#xff0c;人群不断细分&#xff0c;使得消费需求呈现多样化&#xff0c;小家电市场中不少新兴品类都受到消费者的关注。其中&#xff0c;伴随消费者对健康生活方式的认识不断提高&#xff0c;以及各种蔬菜、水果的供应&#xff0c;榨汁机逐…

springBoot中service层查询使用多线程CompletableFuture(有返回值)

重点&#xff1a; 1. 创建线程池 Executor executor Executors.newCachedThreadPool();//保存线程List<CompletableFuture<Void>> futures new ArrayList<>();2.使用 //这里可以是多个看下面代码是在for中使用的 CompletableFuture<Void> future …

vue2中$attrs 和 $listeners的使用

功能&#xff1a; 用于实现多层组件通信&#xff08;多于父子组件通信层级&#xff09;用法&#xff1a; v-bind$attrs 和 v-on$listeners vm. a t t r s 包含了父作用域中不作为 p r o p 被识别 ( 且获取 ) 的 a t t r i b u t e 绑定 ( c l a s s 和 s t y l e 除外 ) 。当一…

【Python】使用python解析普通格式的报文为someip格式报文

文章目录 1.安装scapy库2.示例 1.安装scapy库 使用 pip 安装 scapy 第三方库&#xff0c;打开 cmd&#xff0c;输入以下命令&#xff1a; pip install scapy出现如图所示&#xff0c;表示安装成功&#xff1a; 2.示例 要解析someip格式报文&#xff0c;需要导入someip模块&a…

fastadmin 自定义按钮弹窗不是异步xhr提交

遇到一个奇怪的问题 按官方文档要求&#xff0c;js中也重新绑定事件了 但弹窗出来的表单还不是xhr提交&#xff0c;这为什么&#xff1f; 经过我不断测试发现&#xff0c;如上述的方法名不能带有下划线&#xff0c;蛇形大小写&#xff0c;否则一律不生效。 浪费了我一天半时…

【笔试题心得】物理内存和虚拟内存的区别和联系

物理内存和虚拟内存指的是什么——区别 物理内存&#xff1a; 定义&#xff1a; 物理内存是计算机实际存在的硬件内存&#xff0c;是CPU和其他硬件设备可以直接访问的存储空间。大小限制&#xff1a; 物理内存的大小是有限的&#xff0c;取决于计算机硬件的配置&#xff0c;通…