在软件开发领域,包管理器是不可或缺的工具,它们帮助开发者管理和维护项目中的依赖库。通过对比.NET的NuGet包、Python的pip包以及Java的Maven,我们可以从原理上更深刻地理解这些工具的作用和差异。
原理与功能:
- 定义:NuGet是微软为.NET平台(包括.NET Framework和.NET Core)提供的程序集共享包管理工具。它允许开发者创建、共享和使用.NET包。
- 工作方式:NuGet包通常以文件形式存在,这是一个ZIP包,包含编译后的代码(.dll文件)、其他相关文件以及包的描述信息(如版本号)。开发者可以通过NuGet客户端(如Visual Studio中的NuGet包管理器)或命令行工具来安装包、更新包或卸载包。
- 依赖管理:NuGet自动处理包与包之间的依赖关系,确保项目依赖的所有包都被正确安装和版本控制。
原理与功能:
- 定义:pip是Python的包安装器,用于安装和管理Python包。它允许用户从Python包索引(PyPI)安装和管理包。
- 工作方式:pip通过命令行界面与PyPI交互,下载并安装用户指定的包及其依赖项。pip还支持包的版本管理,允许用户指定安装特定版本的包。
- 依赖管理:pip会自动解决并安装包的依赖项,确保项目的依赖环境是完整和一致的。
原理与功能:
- 定义:Maven是一个项目管理工具,它主要用于Java项目的构建、依赖管理和项目信息管理。Maven通过其项目对象模型(POM)和约定的目录结构来管理项目。
- 工作方式:Maven使用文件作为项目的配置文件,其中定义了项目的依赖关系、构建过程、插件等。Maven根据中的配置自动下载和管理项目所需的依赖库,并执行构建过程(如编译、测试、打包等)。
- 依赖管理:Maven通过中央仓库(如Maven Central)和本地仓库来管理项目的依赖库。它会自动解析项目依赖,并下载和安装所有必要的依赖库及其传递性依赖。
蓝色区域代表maven的核心。蓝色虚线下面的是maven本身的东西,而上面的就是项目中需要处理的模块。
Maven是基于java开发的
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM(Project OBject Model):对项目对象模型
Maven使用pom.xml配置文件获取项目信息
【Maven如何实现帮我们管理资源?】
依赖管理的包都是基于中央仓库拿到的。
使用本地,私服,中央仓库。
使用场景:
基础模块依赖;
Jar包版本冲突(mybatis如果进行版本升级,他依赖的的版本也需要升级,那么需要同步进行)
项目构建:提供标准的、跨平台的自动化项目构建方式。
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题。
开发结构的统一:提供标准的、统一的项目结构
官网:Maven – Welcome to Apache Maven
直接下载,绿色版软件解压即可。
(1) java环境变量(一般都有,不知道的自行搜索吧)
没有的会报错哟:
(2)配置maven
【第 1 步】增加MAVEN_HOME路径
【第 2 步】追加PATH
【第 3 步】验证
如何确认maven安装成功呢,直接输入在cmd窗口输入maven命令即可。
3.1.1. 概念
仓库:用于存储资源,包含各种jar包.
3.1.2. 分类
中央仓库
在云服务器上,maven团队自己管理.这里存放这所有用到的公共jar包.
本地仓库(子集)
从中央仓库下载的jar会存储到开发者自己本机
私服
全世界的开发者都从中央仓库拉取jar,首先maven官网可能是承受不了的,他必要进行限流吧。
对于开发者来说,也会消耗带宽去下载,也会浪费资源。
公司为了让开发者快速下载依赖,提高效率,那么私服就出现了。
那么开发者在拉jar包是,不再去中央仓库,而是先去私服去找,如果没有再去中央仓库去寻找.
扩展理解:
就好比DNS镜像服务服务器一样,所有的域名都走13个根节点服务器,那还不得把根服务器类累死,所以就有了这种镜像的东西。
私服的其他作用:
一定范围内共享资源,仅对内部开放,不对外共享.
maven中央仓库存储这大量的资源,资源在查找的时候如何查询?
Maven就是通过坐标去管理的。
3.2.1. 坐标概念
Maven中的坐标用于描述仓库中资源的位置。
https://repo1.maven.org/maven2/
3.2.2. 坐标组成
组织名、项目名、版本号、打包方式
- 组织:groupid 定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)
- 项目名:artifactid 定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
- 版本号:version 定义当前相关目的版本号
- 打包方式:packaging:定义该项目的打包方式。
如何查看你要导入项目的坐标呢?
通过下面的地址进行搜索、进入后选择版本号就可以看到下面第二幅图了里面的xml坐标了。
https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2/2.0.52
3.2.3. Maven坐标作用
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成
3.3.1. 配置仓库
添加好了之后,注意把你的idea也要修改下,maven使用你安装的maven,配置使用上面配置好的配置,然后刷新下maven依赖。
如果看到配置地址里 “F:99-wxd99-mavenData epository”里面缓存了文件那么就是ok了。
3.3.2. 全局setting、用户setting
这俩配置要保持一致。
- 全局settting:(maven包里面的setting)定义了当前计算器中Maven的公共配置
- 用户settting:(仓库文件的setting)定义了当前用户的配置
到此这篇nvim 配置 maven(nuget maven)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!在草稿箱好久了,先发出来,后面再追加完善……
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/83230.html