Maven工具

Maven工具,第1张

Maven工具

目录

基本介绍

使用前提

安装

环境配置

相关概念

仓库

坐标

搭建maven项目

依赖管理

生命周期

插件

基本介绍

概述:Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型 (POM)。

作用:

  • 项目构建:提供标准的,跨平台的自动化构建项目的方式
  • 依赖管理:方便快捷的管理项目依赖的资源 (jar包),避免资源间的版本冲突等问题
  • 统一开发结构:提供标准的,统一的项目开发结构

概念模型:

  • 项目对象模型 (Project Object Model)。POM对象模型。每个maven工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式
  • 依赖管理系统 (基础核心),maven通过坐标对项目工程所依赖的jar包统一规范管理
  • maven定义一套项目生命周期。清理、初始化、编译、测试、报告、打包、部署、站点生成
  • 一组标准集合。maven工程有自己标准的工程目录结构、定义坐标有标准
  • maven管理项目生命周期过程都是基于插件完成的,例如:开发中使用的tomcat插件

图示:

 

使用前提
安装

maven的官网:http://maven.apache.org/。

官方下载地址:http://maven.apache.org/download.cgi。

maven是一个绿色软件,解压即安装。

目录结构:

 

各目录结构说明:

  • bin:可执行程序目录
  • boot:maven自身的启动加载器
  • conf:maven配置文件的存放目录
  • lib:maven运行所需库的存放目录
环境配置

说明:maven的运行需要java的环境,需要我们配置`JAVA_HOME`环境变量。

步骤:

1. `我的电脑`-------->`属性`--------->`高级系统设置`---------->`新建系统变量MAVEN_HOME`。(系统变量值就是maven软件的根目录)

2. 环境变量配置好之后需要测试环境配置结果,我们需要在DOS命令窗口下输入以下命令查看输出。

如果能够看到输出的maven的版本信息代表配置成功。

相关概念
仓库

概述:用于存储资源,主要是各种jar包。

分类:

本地仓库:开发者电脑上存储资源的仓库,也可从远程仓库获取资源。

中央仓库:maven团队自身维护的仓库,属于开源的。

私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库获取资源。

私服的作用:

  1. 保存具有版权的资源,包含购买或自主研发的jar
  2. 一定范围内共享资源,能做到仅对内不对外开放

仓库配置:在全局进行配置,在maven的配置文件`conf/settings.xml`中可以找到它的说明。在我们前面查看这个文件的时候大家会发现它提供了一个标签`/path/to/local/repo`,这个标签中配置的值就是我们本地仓库的位置。

坐标

概述:maven中的坐标用于描述仓库中资源的位置。

主要组成:

  • groupId:定义当前资源隶属组织名称(通常是域名反写,如:org.mybatis;com.itheima)
  • artifactId:定义当前资源的名称(通常是项目或模块名称,如:crm,sms)
  • version:定义当前资源的版本号
  • packaging:定义资源的打包方式,取值一般有如下三种:
    • jar:该资源打成jar包,默认是jar
    • war:该资源打成war包
    • pom:该资源是一个父资源(表明使用maven分模块管理),打包时只生成一个pom.xml不生成jar或其他包结构

如果要查询maven某一个资源的坐标,我们通常可以去maven的仓库进行查询,,在该网站中可直接搜索想要的资源,然后就能得到该资源的坐标,输入资源名称进行检索。

作用:使用唯一标识,唯一性定义资源位置,通过该标识可以将资源的识别与下载工作交由机器完成。

搭建maven项目 1. 在IDEA中配置Maven2. 创建maven工程3. 填写本项目的坐标4. 查看各目录颜色标记是否正确

5. IDEA右侧有一个maven管理界面 

可点开查看

 

依赖管理

概述:依赖是指在当前项目中运行所需的jar。

依赖配置格式:

传递依赖:

  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被依赖的资源如果依赖其他资源,则表明当前项目间接依赖其他资源
  • 注意:直接依赖和间接依赖其实也是一个相对关系

 

传递依赖的冲突问题:

三种优先法则

  • 路径优先:当依赖中出现相同资源时,层级越深,优先级越低,反之则越高
  • 声明优先:当资源在相同层级被依赖时 配置顺序靠前的覆盖靠后的
  • 特殊优先:当同级配置了相同资源的不同版本时,后配置的覆盖先配置的

依赖范围:

通过`scope`标签设定其作用范围。

  1. 主程序范围有效(src/main目录范围内)
  2. 测试程序范围内有效(src/test目录范围内)
  3. 是否参与打包(package指令范围内)

`scope`标签的取值有四种:

生命周期

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

基本流程:

 

插件

概述:执行生命周期中的相关事件。

特点:

  • 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件
  • maven默认在各个生命周期上都绑定了预先设定的插件来完成相应功能
  • 插件还可以完成一些自定义功能

配置方式:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5158445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存