maven学习笔记

一自动构建工具 maven

1. 传统工程在开发中存在的问题

  1. 一个项目就是一个工程
  2. 项目中需要的jar要手动 “复制”,“粘贴”到 WEB_INf/lib目录下
  3. jar包需要 别人 替我们准保好或到官网下载
  4. 一个jar包依赖其他jar包需要自己手动 加入项目中

2. maven帮我们解决了 什么?

  1. maven可以将一个工程 拆分成多个工程
  2. 借助maven可以帮我们把jar保存到仓库中,有需要使用的工程之间引用这个文件接口,不需要复制jar
  3. 直接导入jar的坐标就行
  4. maven导入一个jar会把其他jar传递过来

3.maven是什么?

是一款服务于java平台的自动化构建工具

4.构建各个环节

  1. 清理:将以前编译得到的class字节码文件删除,为下一次编辑做准备
  2. 编译:将java源程序编译成class字节码文件
  3. 测试:自动测试,自动调用junit程序
  4. 报告:测试程序执行的结果
  5. 打包:动态web工程打war包,java工程达成jar包
  6. 安装:将打包得到的文件复制到仓库中指定位置
  7. 部署:将动态web工程生成的war包复制到servlet容器指定目录,使其可以运行

5.常用命令

  1. mvn clear:清理
  2. mvn complie:编译主程序
  3. mvn test-complie:编译测试程序
  4. mvn test:执行测试
  5. mvn package:打包
  6. mvn install:安装
  7. mvn site:站点

6.坐标

使用下面三个向量在仓库中唯一定位一个maven工程
:公司或者组织域名倒写+项目名
:模块名
:版本号

7.仓库

仓库的分类:

  1. 本地仓库:为当前电脑上所有maven工程服务
  2. 远程仓库:
    私服:架设到当前局域网中,为局域网所有maven工程服务
    中央仓库:架设在internet上,为全世界maven工程服务
    中央仓库镜像:为了分担中央仓库的流量,提升用户访问速度
    3.仓库中保存的内容:
  3. maven自身所需插件
    2.第三方框架或工具jar包
    3.我们自己开发的maven工程

8依赖

  1. maven解析依赖信息时会到本地仓库中查找被依赖jar包,对于我们自己开发的maven工程,可以mvn instaill安装进入仓库
  2. 依赖的范围
    1. compile范围依赖
      • 对主程序是否有效:有效
      • 对测试程序是否有效:有效
      • 是否参与打包:有效
    2. test范围依赖
      • 对主程序是否有效:无效
      • 对测试程序是否有效:有效
      • 是否参与打包:不参与
      • 典型例子:junit
    3. compile范围依赖
      • 对主程序是否有效:有效
      • 对测试程序是否有效:有效
      • 是否参与打包:不参与打包
      • 是否参与部署:不参与
      • 典型例子:servlet-api.jar
        在这里插入图片描述

9生命周期

  1. 各个构建环节执行顺序不能打乱,必须按照正确顺序运行
  2. maven核心程序定义了抽象的生命周期,是由插件完成
  3. 不论执行生命周期哪一个阶段,都是从这个生命周期最初位置开始执行
    在这里插入图片描述
10依赖高级
  1. 依赖的传递性

    • 直接依赖
    • 间接依赖:传递过来的依赖
  2. 依赖的排除

    • 需要设置排除依赖的场合(不稳定的jar,需要排除)
    • 依赖排除设置方式
 <exclusions> 
    <exclusion>        
       <groupId>commonslogging</groupId>                
       <artifactId>commons-logging</artifactId>        
     </exclusion>
</exclusions> 
  1. 依赖的原则

    • 作用:解决模块工程之间的jar包冲突问题
    • 最短路径优先原则
    • 路径相同时先声明者优先(dependency声明顺序)
  2. 统一管理依赖的版本

    • 自定义配置方式
      ①在properties标签内使用自定义标签统一声明版本号
<properties>
	<queen.spring.context.version>4.1.2.RELEASE</queen.spring.context.version>
</properties>

②在需要统一版本号的位置,使用${自定义标签名}引用声明的版本号

11继承

 <dependecyManagement>         </dependecyManagement>
  1. 统一管理各个模块工程对junit依赖的版本
    • 步骤1.创建一个父maven工程 注意:打包方式为pom
    • 2.在子工程声明对父工程的 引用
    • 3.在父工程统一管理jar依赖,子工程不需要加入依赖版本
    • 配置继承后,执行安装命令要先安装 父工程的。

12聚合

 <modules>
           <module>PYG-pojo</module>
           <module>PYG-dao</module>
           <module>PYG-Commons</module>
           ...
     </modules>
  1. 作用:一键安装各个模块的工程
  2. 配置方式:在一个总的模块聚合工程中配置各个参与聚合的模块
  3. 使用方式:再聚合 工程pom.xml右键maven install
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值