Maven学习笔记

概叙

  • Maven是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)。是 Apache 下的一个纯 Java 开发的开源项目,可以对 Java 项目进行构建、依赖管理,提供标准的、统一的项目结构。
    请添加图片描述

安装与环境变量配置

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

请添加图片描述

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

请添加图片描述

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

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

请添加图片描述

基础概念

仓库

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

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

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

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

请添加图片描述

坐标

Maven项目

基本结构

请添加图片描述

利用idea模板创建maven项目

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

请添加图片描述

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

请添加图片描述

利用idea模板创建web项目

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

  • Tomcat的配置

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

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

请添加图片描述

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

请添加图片描述

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

请添加图片描述

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

请添加图片描述

依赖管理

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

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

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

  • 依赖传递冲突问题:

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

    • 在< version >下一行添加< optional >false</ optional >
  • 依赖范围:
    < scope > </ scope >
    请添加图片描述
    请添加图片描述

生命周期

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

进阶操作

分模块开发与设计

请添加图片描述

依赖传递

  • 传递性

    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
    • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
  • 可选依赖:对外隐藏当前所依赖的资源
    请添加图片描述

  • 排除依赖:主动断开依赖的资源,被排除的资源无需指定版本
    请添加图片描述

聚合

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

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

请添加图片描述

构建步骤:

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

​ pom

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

请添加图片描述

继承

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

    构建步骤:

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

​ pom

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

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

请添加图片描述

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

请添加图片描述

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

请添加图片描述

属性

构建步骤:

1.定义属性

请添加图片描述

2.引用属性

请添加图片描述

资源文件引用属性:

1.定义属性

请添加图片描述

2.配置文件中引用属性

请添加图片描述

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

请添加图片描述

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

多环境配置与应用

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

1.定义多环境

请添加图片描述

2.使用多环境

请添加图片描述

跳过测试

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

1.点击右侧闪电符号

2.mvn指令:-D skipTests

3.细颗粒度跳过测试

请添加图片描述

私服

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

流程分析:

请添加图片描述

  • 私服仓库分类:

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

请添加图片描述

配置位置:(setting.xml)

请添加图片描述
请添加图片描述

工程pom文件中:

请添加图片描述

发布指令:mvn deploy

学习中遇到的问题及解决

  • 本地仓库默认在c盘,随着使用时间增长,占用空间会变大,如何更改储存路径?
    • 在非c盘的磁盘新建maven文件夹,在里面再建一个repository文件夹,并记录此路径
    • 打开:apache-maven文件夹–>conf–>settings.xml
    • 找到settings下面的<!-- localRepository一行
    • 将[< localRepository>/path/to/local/repo< /localRepository>]一行复制并粘贴在–>的下一行
    • 将中间的[/path/to/local/repo]改为刚才新建的路径
    • 随后存储路径就会变为如图所示

请添加图片描述

  • 国外中央仓库下载速度较慢,在setting文件中配置阿里云镜像仓库
    • 仍然是settings.xml文件,将mirror中间的部分复制在下面,并进行修改,如图所示

请添加图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值