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

2023-11-04

前言:

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

 

文章目录

前言:

 maven介绍:

maven的结构:

为什么需要maven?

如何配置maven?

总结:


 maven介绍:

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

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

maven的结构:

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

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

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

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

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

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

为什么需要maven?

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

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

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

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

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

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

如何配置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,开发人员可以专注于业务开发,提高项目的可维护性和可靠性,无论项目规模大小都是有价值的工具。

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

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 数学建模之主成分分析(matlab算法)

    主成分分析是一种降维算法 它能将多个指标转换为少数几个主成分 这些主成分是原始变量的线性组合 且彼此之间互不相关 其能反映出原始数据的大部分信息 一般来说 当研究的问题涉及到多变量且变量之间存在很强的相关性时 我们可以考虑使用主成分分析的方
  • 非对称加密算法

    文章目录 概述 DH Diffie Hellman 秘钥交换算法 RSA 基于因子分解 ElGamal 基于离散对数 ECC Elliptical Curve Cryptography 椭圆曲线加密 概述 对称加密算法是因为秘钥的对称而由来
  • alpha shapes提取平面点云边界点

    1 原理介绍 由Edelsbrunner H提出的alpha shapes算法是一种简单 有效的快速提取边界点算法 其克服了点云边界点形状影响的缺点 可快速准确提取边界点 其原理如下 如下图所示 对于任意形状的平面点云 若一个半径为a的圆
  • 从零到一不一样的TOC商城项目:Cloud-Alibaba+DDD,私活利器开源

    刚果商城 不一样的商城系统 刚果商城是个从零到一的商城项目 包含商城核心业务和基础架构两大模块 参照商城系统原型 推出用户 消息 商品 订单 优惠券 支付 网关 购物车等业务模块 通过商城系统中复杂场景 给出对应解决方案 使用 DDD 模型
  • 瑞吉外卖项目1 + 源码

    目录 一 瑞吉外卖项目介绍 1 1 项目介绍 1 2 技术点 1 3 功能架构 项目中所用到的全部功能 1 4 角色 不同角色所对应的不同权限 二 开发环境搭建 2 1 创建项目对应的数据库 两种方式 2 1 1 图形界面创建库形式 2 1
  • 大二第二周总结

    问题 想到了之前追的辩论赛 主题是 被误解是表达者的宿命 反方认为被误解不是表达者的宿命 由于表达者表意含混造成误解的可能性是人力可控的 表达者可在真诚沟通的基础之上 根据对方反应不断调整语言 或者采用表情和肢体等表达方式 对于暂时未理解表
  • 当用了万恶的crontab -r命令后……

    明天计划上个新的应用 需要写脚本获取服务器状态并写入数据库 下午写完脚本 准备先放cron里测试一下 登进服务器 想敲crontab e加一条计划 结果手一滑就敲成了crontab r 然后就悲剧了 因为发现没有备份 没办法 想办法恢复吧
  • redis2txt-获取redis数据并存储到txt文件

    txt文件导入redis 单线程 多线程 list类型 redis cli h ip LRANGE key 0 999999 while read item do echo item gt gt tmp listdata txt done
  • 超全面的语音交互知识总结:从原理、场景到趋势

    1 什么是语音交互 语音交互 VUI 指的是人类与设备通过自然语音进行信息的传递 一次完整的语音交互需要经历ASR NLP Skill TTS的流程 1 ASR 用于将声学语音进行分析 并得到对应的文字或拼音信息 语音识别系统一般分训练和解
  • where not exists 避免重复插入SQL语句

    项目场景 避免重复插入SQL语句 insert into TABLE2 select from TABLE1 where not exists select 1 from TABLE2 where TABLE2 id TABLE1 id a
  • Ubuntu下chgrp的用法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 每天一个linux命令链接 http www cnblogs com peida archive 2012 12 03 2799003 html 实例1 改变文件的群组属性
  • Elasticsearch中 match、match_phrase、query_string和term的区别

    一 text字段和keyword字段的区别 以下给出一个例子 首先建立一个索引和类型 引入一个keywork的字段 PUT my index mappings products properties name type keyword 然后
  • 华为OD机试 Java 实现【计算日期到天数转换】【牛客练习题】

    一 题目描述 根据输入的日期 计算是这一年的第几天 保证年份为4位数且日期合法 二 输入描述 输入一行 每行空格分割 分别是年 月 日 三 输出描述 输出是这一年的第几天 四 Java算法源码 public static void main
  • 200行代码实现Mini ASP.NET Core

    前言 在学习ASP NET Core源码过程中 偶然看见蒋金楠老师的ASP NET Core框架揭秘 不到200行代码实现了ASP NET Core Mini框架 针对框架本质进行了讲解 受益匪浅 本文结合ASP NET Core Mini
  • 逆矩阵的概念、应用和求解

    目录 逆矩阵的概念 求解逆矩阵 应用例子 可能没有逆矩阵 求解逆 方法1 初等行运算 高斯 若尔当 求解逆 方法2 余子式 代数余子式和伴随 求解逆 方法3 程序库 逆矩阵的概念 矩阵运算中 是没有除法的 也就是不能除以一个矩阵 这时就需要
  • C++ 遍历驱动列表(应用层下)

    上代码咯 include stdafx h include
  • (android地图开发) 高德地图手势切换

    效果截图 相关布局文件 手势滑动第一个界面
  • Apache-Arrow是什么?

    Apache Arrow是什么 Arrow是一种数据存储格式 以及对这个格式的一系列API及多语言的SDK 当上层应用使用这个接口访问这些数据的时候 大家就不用在不同的私有格式之间转换 从而省去了大量的序列化和反序列化的计算资源 基础概念
  • PVE虚拟化平台之安装openEuler系统

    PVE虚拟化平台之安装openEuler系统 一 openEuler介绍 1 1 openEuler简介 1 2 openEuler的硬件要求 物理机的安装要求 虚拟机的安装要求 二 下载openEuler系统镜像 2 1 官方网址 2 2
  • MAVEN利器:一文带你了解MAVEN以及如何配置

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