maven基础

本文介绍了Maven作为项目管理工具的核心概念,包括POM的作用、依赖管理机制、本地仓库、私服和中央仓库的区别,以及坐标系统在资源定位中的重要性。Maven通过自动化构建和解决版本冲突,简化了项目开发和维护过程。
摘要由CSDN通过智能技术生成

1.maven概述
1.maven的介绍
假设你现在做了一个crm的系统,项目中肯定要用到一些jar包,比如说mybatis,log4j,JUnit等

假如有一天你们的项目中mybatis进行了一个升级,但是它内部使用的JUnit没有升级,你升级以后的mybatis假如要用5.0的JUnit,而你项目中目前用的是4.0的,必然会出问题!这个时候管理起来会比较麻烦,你需要各种调整

就会出现几种严重的问题

1.jar包不统一,jar不兼容

2.工程升级维护过程操作繁琐

Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

Maven是用Java语言编写的。

他管理的东西统统以面向对象的形式进行设计,最终他把一个项目看成一个对象,

而这个对象叫做POM(project object model),即项目对象模型

们说一个项目就是一个对象,作为对象的行为、对象的属性都有哪些呢?

Maven说我们需要编写一个pom.xml文件,Maven通过加载这个配置文件就可以知道我们项目的相关信息了

到这里我们知道了Maven离不开一个叫pom.xml的文件。因为这个文件代表就一个项目

那Maven是如何帮我们进行项目资源管理的呢?这就需要用到Maven中的第二个东西:依赖管理。这也是它的第二个核心

所谓依赖管理就是maven对项目所有依赖资源的一种管理,它和项目之间是一种双向关系,即当我们做项目的时候maven的依赖管理可以帮助你去管理你所需要的其他资源,当其他的项目需要依赖我们项目的时候,maven也会把我们的项目当作一种资源去进行管理,这就是一种双向关系

那maven的依赖管理它管理的这些资源存在哪儿,主要有三个位置:本地仓库,私服,中央仓库

本地仓库顾名思义就是存储在本地的一种资源仓库,如果本地仓库中没有相关资源,可以去私服上获取,私服也是一个资源仓库,只不过不在本地,是一种远程仓库,如果私服上也没有相关资源,可以去中央仓库去获取,中央仓库也是一种远程仓库

Maven除了帮我们管理项目资源之外还能帮助我们对项目进行构建,管理项目的整个生命周期,这些功能需要使用一些相关的插件来完成,整个生命周期过程中插件是需要配合使用的,单独一个无法完成完整的生命周期 

2.maven的作用
1.项目构建:提供标准的,跨平台的自动化构建项目的方式

2.依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突等问题

3.统一开发结构:提供标准的,统一的项目开发结构

3.maven的下载与安装
maven的官网:http://maven.apache.org/

官方下载地址:http://maven.apache.org/download.cgi

然后解压,maven是一个绿色软件,解压即安装

各目录结构说明:

bin:可执行程序目录,

boot:maven自身的启动加载器

conf:maven配置文件的存放目录

lib:maven运行所需库的存放目录

环境配置

maven的运行需要java的环境,需要配置JAVA_HOME环境变量

然后需要配置MAVEN_HOME的环境变量

设置-系统信息-高级系统设置-环境变量-新建(系统变量)-变量名:MAVEN_HOME,变量值:maven文件的根目录-打开path-新建:%MAVEN_HOME%\bin

测试:cmd中输入mvn

4.仓库
仓库:用于存储资源,主要是各种jar包

关于仓库,有三种:本地仓库,私服,中央仓库,其中私服和中央仓库都属于远程仓库

中央仓库:maven团队自身维护的仓库,属于开源的

私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库获取资源

本地仓库:开发者自己电脑上存储资源的仓库,也可从远程仓库获取资源

私服的作用:

1.保存具有版权的资源,包含购买或自主研发的jar

2.一定范围内共享资源,能做到仅对内不对外开放

5.坐标
我们说maven的仓库里存储了各种各样的资源(jar包),那这些资源我们如何找到它们呢?我们需要知道它们具体的一个位置才能知道如何找到它们,这个就叫坐标

坐标:maven中的坐标用于描述仓库中资源的位置

maven仓库地址:https://repo1.maven.org/maven2/

maven坐标的主要组成

groupId:定义当前资源隶属组织名称(通常是域名反写,如:org.mybatis)

artifactId:定义当前资源的名称(通常是项目或模块名称,如:crm,sms)

version:定义当前资源的版本号

packaging:定义资源的打包方式,取值一般有如下三种

(1)jar:该资源打成jar包,默认是jar

(2)war:该资源打成war包

(3)pom:该资源是一个父资源(表明使用maven分模块管理),打包时只生成一个pom.xml不生成jar或其他包结构

需要查询一个maven资源坐标时, 可以在maven仓库查询

https://mvnepository.com/(常用)

在该网站中可直接搜索想要的资源,然后就能得到该资源的坐标

maven坐标的作用:使用唯一标识,唯一性定义资源位置,通过该标识可以将资源的识别与下载工作交由机器完成

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修行者对666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值