IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Maven工具 -> 正文阅读

[Java知识库]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`中可以找到它的说明。在我们前面查看这个文件的时候大家会发现它提供了一个标签`<localRepository>/path/to/local/repo</localRepository>`,这个标签中配置的值就是我们本地仓库的位置。

坐标

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

主要组成:

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

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

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

搭建maven项目

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

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

可点开查看

?

依赖管理

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

依赖配置格式:

传递依赖:

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

?

传递依赖的冲突问题:

三种优先法则

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

依赖范围:

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

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

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

生命周期

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

基本流程:

?

插件

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

特点:

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

配置方式:


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:16:21  更:2021-11-10 12:16:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:56:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码