Maven学习笔记

Maven学习笔记


by ——黑马程序员 https://www.bilibili.com/video/BV1Ah411S7ZE

简介

为了解决jar包不统一、不兼容的问题而提出的工具。Maven本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)。

项目构建:提供标准、跨平台的自动化项目创建方式

依赖管理:方便管理项目依赖的资源

统一开发结构:提供标准的、统一的项目结构

在这里插入图片描述

下载略,idea自带Maven

基础概念

仓库:用于存储资源,包含各种jar包

  • 中央仓库保存着大部分的jar包,本地仓库需要从中央或者私服中获取jar包。私服访问速度比中央仓库快,且一定范围内共享资源,仅对内开放,不对外共享

坐标:Maven用于描述仓库中资源的位置,在该网址https://mvnrepository.com/检索需要的仓库名

以mybatis-plus坐标为例:

<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.5</version>
</dependency>
  • 一般组成是

    groupId:定义当前Maven项目隶属组织名称,eg org.mybatis

    artifactId:定义当前Maven项目名称,一般为模块名称,eg CRM

    version:定义当前版本号

    packaging:定义该项目的打包方式

如果是单独安装的maven需要修改本地仓库的地址,需要打开maven安装包内的conf文件中的settings.xml,将里面的setting中的localRepository文件路径改为自己需要的即可。还可以修改下载镜像,具体需要可以再查,这里不详细展开。

项目

结构如下:

在这里插入图片描述

mvn compile #编译
mvn clean # 清理
mvn test #测试
mvn package #打包
mvn install #安装到本地

Idea启动

直接配置maven即可

在这里插入图片描述

创建之后,就会有目录了,在pom.xml中加入依赖即可,如:

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

右侧maven按钮可以快速执行指令

还可以利用Maven Archetype,依照已有的模版创建

在这里插入图片描述

Java 是quickstart,web是webapp

添加Tomcat依赖(一般用springboot会内置Tomcat,不需要单独添加了)

依赖管理

依赖指当前项目运行所需的jar,一个项目可以设置多个依赖

依赖传递

  • 直接依赖:在当前项目中通过依赖配置建立的关系
  • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
  • 当依赖产生冲突的时候,后配置的覆盖先配置的,层级约深,优先级越低。同层级下配置顺序靠前的优先级高

可选依赖:加optional字段,将其修改为true,即可隐藏依赖

排除依赖:主动断开依赖的资源,即某个依赖通过其他依赖引入但你不希望它被包含在项目构建中。被排除的资源无需指定版本。

	<exclusions>
      <exclusion>
        <groupId>com.example.group</groupId>
        <artifactId>dependency-C</artifactId>
      </exclusion>
    </exclusions>

依赖范围,默认可以在任何地方使用,通过scope标签设置作用范围

在这里插入图片描述

依赖范围的传递性

在这里插入图片描述

生命周期与插件

Maven构建生命周期描述的是一次构建过程经历了多少个事件

  • clean:清理工作
    • pre-clean:执行clean前需要的工作
    • clean:移除上一次构建生成的文件
    • post-clean:执行clean后立刻要完成的工作
  • default:核心工作,如编译、测试、打包、部署等
  • site:产生报告、发布站点等

插件:与各个生命周期内的阶段绑定,在执行对应生命周期时执行对应的插件功能。添加自定义的方法具体可以看官网文档操作
ult:核心工作,如编译、测试、打包、部署等

  • site:产生报告、发布站点等

插件:与各个生命周期内的阶段绑定,在执行对应生命周期时执行对应的插件功能。添加自定义的方法具体可以看官网文档操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mighty-X

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

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

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

打赏作者

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

抵扣说明:

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

余额充值