Maven学习笔记

文章目录

    • 概叙
    • 安装与环境变量配置
    • 基础概念
      • 仓库
      • 坐标
    • Maven项目
      • 基本结构
      • 利用idea模板创建maven项目
      • 利用idea模板创建web项目
      • 依赖管理
      • 生命周期
    • 进阶操作
      • 分模块开发与设计
      • 依赖传递
      • 聚合
      • 继承
      • 属性
      • 多环境配置与应用
      • 跳过测试
      • 私服
    • 学习中遇到的问题及解决

概叙

  • Maven是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)。是 Apache 下的一个纯 Java 开发的开源项目,可以对 Java 项目进行构建、依赖管理,提供标准的、统一的项目结构。
    Maven学习笔记_第1张图片

安装与环境变量配置

  • 访问https://maven.apache.org/download.cgi官网
  • 选择Windows或Linux版本安装

Maven学习笔记_第2张图片

  • 右键计算机–>属性–>高级系统设置–>环境变量–>新建系统变量
    • 变量名为MAVEN_HOME
    • 变量值为Maven的安装地址

Maven学习笔记_第3张图片

  • 编辑系统变量Path,添加变量值[%MAVEN_HOME%\bin]

  • 检验:Win+R,输入cmd,在窗口输入mvn,若出现如图指令出现,即已成功配置

Maven学习笔记_第4张图片

基础概念

仓库

  • 储存资源,包含各种jar包

  • 本地仓库:本机上存储资源的仓库

  • 远程仓库:非本机的仓库,为本机仓库提供资源

    • 中央仓库:存储所有资源
    • 私服:从中央库获取资源

Maven学习笔记_第5张图片

坐标

  • 用于描述仓库中资源的位置

  • 组成:1、groupld:定义当前Maven项目隶属组织名称

    ​ 2、artifactld:定义当前Maven项目名称

    ​ 3、version:定义项目版本号

  • 查询:

    • Maven Repository: Search/Browse/Explore (mvnrepository.com)

Maven项目

基本结构

Maven学习笔记_第6张图片

利用idea模板创建maven项目

  • File–>New–>Module–>Gengrators选择Maven–>Archetype选择org.apache.maven.archetypes:maven-archetype-quickstart–>完成创建

Maven学习笔记_第7张图片

  • 右键文件夹利用Mark Directory as完成类型标记

Maven学习笔记_第8张图片

利用idea模板创建web项目

  • 流程同上,只是Archetype选择org.apache.cocoon:cocoon-22-archetype-webapp

  • Tomcat的配置

    1. 在https://mvnrepository.com搜索Tomcat maven

    2. 找到[org.apache.tomcat.maven]点击

Maven学习笔记_第9张图片

​ 3. 选择版本后将栏框中的代码复制

Maven学习笔记_第10张图片

​ 4.在pom.xml文件中写构建代码,并将刚才复制的代码粘贴至插件配置中间

Maven学习笔记_第11张图片

​ 5.随后就能在plugins中看到tomcat了(刚开始爆红是插件还没下载好,稍等几 秒,在右侧Maven刷新即可

Maven学习笔记_第12张图片

依赖管理

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

  • 在< dependencies >中插入< dependency >,并在< groupId >,< artifactId >,< version >中插入相应的代码

  • 依赖传递:若project01要用到project02,将project02的坐标复制到project01的< dependency >即可

  • 依赖传递冲突问题:

    • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低
    • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖靠后的
    • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
  • 可选依赖:对外隐藏当前所依赖的资源

    • 在< version >下一行添加< optional >false
  • 依赖范围:
    < scope >
    Maven学习笔记_第13张图片
    Maven学习笔记_第14张图片

生命周期

  • clean:清理工作
    • preclean:执行一些clean之前需要完成的工作
    • clean:移除所有上一次构建生成的文件
    • post-clean:执行一些clean之后需要完成的工作
  • default:核心工作(编译、测试、打包等)
    • compile(编译)
    • test-compile(编译测试源码)
    • test(测试)
    • package(打包)
    • install(安装)……
  • site:产生报告,发布站点
    • pre-site:执行一些site之前需要完成的工作
    • site:生成项目的站点文档
    • post-site:执行一些site之前需要完成的工作
    • site-deploy:将生成的站点文档部署到特定的服务器上

进阶操作

分模块开发与设计

Maven学习笔记_第15张图片

依赖传递

  • 传递性

    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
    • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
  • 可选依赖:对外隐藏当前所依赖的资源
    Maven学习笔记_第16张图片

  • 排除依赖:主动断开依赖的资源,被排除的资源无需指定版本
    Maven学习笔记_第17张图片

聚合

  • 将多个模块组合成一个整体,同时进行项目的构建的过程

  • 当工程中某个模块发生更新时,必须保障工程中与已更新模块关联的模块同步更新,此时可以使用聚合工程来解决批量模块同步构建的问题

Maven学习笔记_第18张图片

构建步骤:

1.创建Maven模块,设置打包类型为pom

​ pom

2.设置当前聚合工程所包含的子模块名称

Maven学习笔记_第19张图片

继承

  • 描述的是两个工程间的关系,子工程可以继承父工程的配置信息,常见于依赖关系的继承,可以简化配置,减少版本冲突

    构建步骤:

1.创建Maven模块,设置打包类型为pom

​ pom

2.在父工程的pom文件中配置依赖关系

3.配置子工程中可选的依赖关系

Maven学习笔记_第20张图片

4.在子工程中配置当前工程所继承的父工程

Maven学习笔记_第21张图片

5.在子工程中配置使用父工程中可选依赖的坐标

Maven学习笔记_第22张图片

属性

构建步骤:

1.定义属性

Maven学习笔记_第23张图片

2.引用属性

Maven学习笔记_第24张图片

资源文件引用属性:

1.定义属性

Maven学习笔记_第25张图片

2.配置文件中引用属性

Maven学习笔记_第26张图片

3.开启资源文件目录加载属性的过滤器

Maven学习笔记_第27张图片

  • 版本管理:
    • 工程版本
      • SNAPSHOT(快照版本)
        • 项目开发过程中临时输出的版本
        • 随着开发的进程不断更新
      • RELEASE(发布版本)
        • 向团队外部发布较为稳定的版本
    • 发布版本
      • alpha
      • beta
      • 纯数字

多环境配置与应用

  • 多环境开发:maven提供配置多种环境的设定,帮助开发者使用过程中快速切换环境

1.定义多环境

Maven学习笔记_第28张图片

2.使用多环境

Maven学习笔记_第29张图片

跳过测试

  • 应用场景:
    • 功能更新中并且没有开发完毕
    • 快速打包
  • 方法:

1.点击右侧闪电符号

2.mvn指令:-D skipTests

3.细颗粒度跳过测试

Maven学习笔记_第30张图片

私服

  • 私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题

流程分析:

Maven学习笔记_第31张图片

  • 私服仓库分类:

    • 宿主仓库(hosted):保存自主研发+第三方资源
    • 代理仓库(proxy):代理连接中央仓库
    • 仓库组(group):为仓库编组简化下载操作
  • 资源的上传于下载:

Maven学习笔记_第32张图片

配置位置:(setting.xml)

Maven学习笔记_第33张图片
Maven学习笔记_第34张图片

工程pom文件中:

Maven学习笔记_第35张图片

发布指令:mvn deploy

学习中遇到的问题及解决

  • 本地仓库默认在c盘,随着使用时间增长,占用空间会变大,如何更改储存路径?
    • 在非c盘的磁盘新建maven文件夹,在里面再建一个repository文件夹,并记录此路径
    • 打开:apache-maven文件夹–>conf–>settings.xml
    • 找到settings下面的

你可能感兴趣的:(maven,学习,java)