Maven-自动化构建工具学习

为什么要用Maven

目的:进行依赖管理和生命周期管理

一、依赖管理:管理第三方jar包

  1. 每个项目不需要复制粘贴大量的jar包到WEB-INF,只需要维护一个jar包的引用,也就是“坐标”,实现代码重用
  2. 可以将当前jar包所依赖的jar包都导入,无需了解依赖的具体jar包。
  3. jar包冲突,使用最短路径优先原则或者先声明优先原则解决。

二、生命周期:清理、编译、测试、报告、打包、部署

好处:

  • 不需要粘贴大量jar包
  • 大项目拆分,maven可以把一个项目拆成多个工程
  • 不需要自己下载jar包
  • jar包版本统一
  • jar包依赖自动载入

什么是Maven

一款自动化构建工具

构建的环节:

  1. 清理:清理以前编译的旧class字节码文件
  2. 编译:源代码编译成class字节码
  3. 测试:调用junit测试
  4. 报告:
  5. 打包:web打包成war,java打包成jar
  6. 安装:将打包得到的文件复制到仓库中制定位置
  7. 部署:将war复制到servlet容器下,可以运行

概念

Pom.xml:核心配置文件
坐标:使用三个向量,在仓库中定位一个maven工程
* groupId 项目名
* artifactId 模块名
* Version 版本

maven坐标和仓库对应的映射关系:[groupId][artifactId][version][artifactId]-[version].jar

仓库
* 本地仓库:当前用户目录\.m2\repository
* 远程仓库
    * 私服:局域网仓库
    * 中央仓库:因特网仓库
依赖
* 先去本地仓库找依赖,找不到去中央仓库下载到本地仓库,如果中央仓库找不到则编译失败。
* 如果依赖的自己开发的maven工程,需要先把工程install到本地仓库
* 依赖范围<Scope>
    * Compile 默认值,所有阶段都会存在
    * Provided 开发测试阶段有效
    * Runtime 只在运行和测试有效
    * Test 只在测试有效
    * System 类似于provided 需要自己提供包含依赖的jar
* 依赖传递性:必须是compile范围的依赖,才可以依赖传递
    * 什么是依赖传递:a依赖b,b依赖c,则c必须先mvn install然后b再mvn install a才能编译通过。
    * 为c增加一个依赖d,a和b也会自动增加依赖d
* 依赖版本原则
    * 路径最短原则
	* 路径相同,先声明优先原则
	* 统一管理依赖的版本:使用properties标签,自定义标签名,需要时候使用${自定义标签名}
生命周期:包含三套生命周期
* Clean lifecycle
* default-lifecycle
* Site lifecycle
插件:每个阶段都有插件,用来执行对应的生命周期的命令
  • 不管执行生命周期哪个阶段,都是从头开始执行的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值