Maven 是什么东西?

╰半夏微凉° 2023-07-25 08:41 348阅读 0赞
  1. 最近在学习Java的过程中,遇到了一个“东西”-----Maven ,这个玩意很不清晰,然后就学习了一下,下面我用自己的话来简单的介绍一下Maven
  2. 在介绍之前有个故事讲给你听: 假如我们正在开发两个项目(A B),其中A项目中的一些功能依赖于B项目中的某些类,那么该如何来维系这种依赖关系?
  3. 有人说: 很简单,我们之前在写程序的时候,需要用什么就把需要的内容导入自己的项目中,导入jar包即可,所以这里也一样,可以将B项目打包成jar包,然后在A项目的Library下导入Bjar文件,这样A项目就可以调用B项目中的某些类了。
  4. 但是这样有一个严重的缺陷就是:在开发的过程中,如果发现Bbug那么,我们需要把项目B修复好,然后重新将B打包,并对项目A进行重编译操作。
  5. 那我们应该怎么办?

下面就在介绍Maven—-:

什么是Maven:

Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具[百度百科]

  1. 我觉得Maven的核心功能就是合理叙述项目之间的依赖关系,**通俗点讲就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包**,那么如何通过pom.xml的配置就获取到jar包呢?
  2. 如果需要使用pom.xml来获取jar包,那么这个项目就必须是maven项目,maven项目和java项目有什么区别? 就是在在java项目或者web项目的上面包裹一层maven,本质上java项目还是java项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml 添加jar包)

举个例子:pom.xml获取springframework的jar包

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMwNjMxMDYz_size_16_color_FFFFFF_t_70

上面的pom.xml所属的项目是A项目,那么A项目肯定是一个maven项目,通过上面这三个属性能够找到springframework对应版本的jar包,那么springframework肯定也是maven项目

通过上面pom.xml中的配置,就能够获取到我们想要的jar包,但是这些jar包在哪里? 答案就是: 仓库

仓库:

  1. 仓库分为: 本地仓库、第三方仓库、中央仓库

本地仓库:

我们在下载了Maven之后,Maven会将工程中的构件,从远程下载到本地的一个目录下管理,每个电脑的默认仓库是:

$user.home/.m2/repository

2020041316501147.png

一般我们会修改本地仓库位置,自己创建一个文件夹,在从网上下载一个拥有相对完整的所有jar包的结合,都丢到本地仓库中,然后每次写项目,直接从本地仓库里拿就行了

但是如果我们修改了仓库,那么就需要在maven的setting.xml中进行修改

202004131646536.png

第三方库:

第三方仓库,又称为内部中心仓库,也称为私服

  私服:一般是由公司自己设立的,只为本公司内部共享使用。

中央仓库

  Maven内置了远程公用仓库:http://repo1.maven.org/maven2

  这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主工程依赖的jar包如果本地仓库没有,默认从中央仓库下载

过程:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMwNjMxMDYz_size_16_color_FFFFFF_t_70 1

发表评论

表情:
评论列表 (有 0 条评论,348人围观)

还没有评论,来说两句吧...

相关阅读

    相关 对象头什么东西

    对象头,顾名思义,就是对象的头。对象是实例化出来的,实例化的前提是必须有类这个模板。举个不大恰当的例子,人类就是个类,你我他就是人类实例化出来的对象。我们的头,自然就是对象头。

    相关 csv什么东西?

    csv一般就是我们从数据库导出数据的时候应该可以导出为csv文件的格式。 一般我们可以用文本,excel打开,但是要注意的是用excel打开的时候会发生数据错误的问题,这个我

    相关 CRLF什么东西

    对于CRLF这个词来说,相信搞开发的应该都不会陌生,其意思是回车换行。 但是对于这个普遍解释,我还有以下两点疑问: 1.为什么CR代表回车,LF代表换行? 2.回车

    相关 代理服务什么东西

             最早听说代理服务,还是从机房的时候的511代理服务器说起,因为要通过网络认证才可以上网的学校恰好有些同学没有上网的账号,所以才出了代理这个东西,就是为了通过开