欢迎光临散文网 会员登陆 & 注册

后端 | Maven | 依赖管理

2023-06-25 23:40 作者:朵宝特工007  | 我要投稿

笔记来源:黑马程序员2023新版JavaWeb开发教程,实现javaweb企业开发全流程

一、Maven概述

1、Maven是什么

  • Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。

2、Maven的作用

  • 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突信息。

  • 统一项目结构:提供标准、统一的项目结构。

  • 项目构建:标准跨平台(Linux、Windows、MacOS)的自动化项目构建方式。

    • 清理、编译、测试、打包、发布。

3、Maven仓库

用于存储资源,管理各种jar包。

  • 本地仓库:自己计算机上的一个目录。

  • 中央仓库:由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2。

  • 远程仓库(私服):一般由公司团队搭建的私有仓库。

4、Maven的安装

  • Maven依赖JDK,先准备JDK环境,然后在Maven官网下载Maven安装包,并解压到本地。

  • 配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录。

  • 配置阿里云私服(加速jar包下载):修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签。

  • 配置环境变量(使得在任意目录都能运行Maven):MAVEN_HOME为maven解压的目录,并将其bin目录加入PATH环境变量。

  • 测试

5、Maven坐标

什么是坐标:

  • Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置。

  • 使用坐标来定义项目或引入项目中需要的依赖。

Maven坐标的主要组成:

  • groupId:定义当前Maven项目隶属组织名称,通常是域名反写。

  • artifactId:定义当前Maven项目名称,通常是模块名称。

  • version:定义当前项目版本号。


二、依赖管理

1、依赖配置

  • 依赖:指当前项目运行时所需要的jar包,一个项目中可以引入多个依赖。

  • 配置:

    • 在pom.xml中编写<dependencies>标签

    • 在<dependencies>标签中使用<dependency>引入坐标。

    • 定义坐标的groupId、artifactId、version。

    • 点击刷新按钮,引入最新加入的坐标。

2、依赖传递

  • 依赖具有传递性

    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系。

    • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源。

  • 排除依赖:指主动断开依赖的资源,被排除的资源无需指定版本。

3、依赖范围

依赖的jar包,默认情况下,可以在任何地方使用。可以通过<scope>...</scope>设置其作用范围。

作用范围:

  • 主程序范围有效(man文件夹范围内)。

  • 测试程序范围有效(test文件夹范围内)。

  • 是否参与打包运行(package指令范围内)。

scope值

  • compile:默认值,主程序、测试程序、打包运行。

  • test:测试程序。

  • provided:主程序、测试程序。

  • runtime:测试程序、打包运行。

4、生命周期

Maven的生命周期就是为了对所有的Maven项目构建过程进行抽象和统一。

maven中有3套相互独立的生命周期(在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行):

  • clean:清理工作,移除上一次构建生成的文件。

  • default:核心工作。如编译、测试、打包、安装、部署等。

    • compile:编译项目源代码。

    • test:使用合适的单元测试框架进行测试。

    • package:将编译后的文件打包,如jar、war等。

    • install:安装项目到本地仓库。

  • site:生成报告、发布站点等。




后端 | Maven | 依赖管理的评论 (共 条)

分享到微博请遵守国家法律