Maven相关介绍

Maven的作用

1、依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题。

2、统一项目结构

# 这是maven的项目结构

- src                   
	- main                 # 实际项目资源
		- java         # java源代码目录
		- resources    # 配置文件目录
	- test                 # 测试项目资源
		- java
		- resources
	- pom.xml              # 项目配置文件

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

Maven概述

  • Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。
  • 作用
    • 方便的依赖管理
    • 统一的项目结构
    • 标准的项目构建流程
  • Maven官网:https://maven.apache.org/

Maven介绍

Maven模型

image.png

  • 仓库:用于存储资源,管理各种jar包。
    • 本地仓库:自己计算机上的一个目录
    • 中央仓库:有Maven团队维护的全球唯一的仓库。
    • 远程仓库(私服):一般由公司团队搭建的私有仓库。

查找jar包顺序:本地仓库-->远程仓库(私服)-->中央仓库

Maven安装

  • 安装步骤
    1. Maven官网下载:选择第二个下载即可
      image.png
    2. 配置本地仓库:
      修改conf/settings. xml中 <localRepository> 为一个指定目录,作为我们的本地仓库地址。
    3. 配置阿里云私服:
      修改conf/settings. xml中 <mirrors> 标签,添加一个子标签
      <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>            
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>
      </mirror>
      
    4. 配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入PATH环境变量
  • 测试是否配置完成
    • 打开cmd
    • 输入 mvn -v 指令,看看是否会出现Maven的版本信息

Maven的目录结构

# Maven的目录结构

- bin       # 存放的是可执行文件
- boot      # 
- conf      # Maven的配置文件
- lib       # Maven所需要的依赖

IDEA集成Maven

配置Maven环境

  • 选择IDEA中的File-->Settings-->Build, Execution, Deployment-->Build Tools-->Maven
  • 设置IDEA使用本地安装的MaVen,并修改配置文件及本地仓库路径
    image.png
  • 检查Maven关联的JRE版本是否是我们所使用的
    image.png
  • 配置Java语言的字节码版本
    image.png

之前的配置只是配置单独的一个项目,如果想让IDEA中的所有项目都使用这样的配置。

则可以在IDEA开始的界面进行上面的配置操作。
image.png

如果打开了一个项目,则可以在File-->New Projects Setup-->Settings for New Projects进行全局的配置。

IDEA导入Maven项目

  • 点击右侧的Maven管理界面,单击加号导入,选择导入项目的pom. xml文件即可image.png

Maven坐标

  • 什么是坐标?
    • Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置。
    • 使用坐标来定义项目或引入项目中需要的依赖。
  • Maven坐标主要组成
    • groupld:定义当前Maven项目隶属组织名称(通常是域名反写)
    • artifactld:定义当前Maven项目名称(通常是模块名称)
    • version:定义当前项目版本号

例如:

<dependencies>
	<dependency>
		<groupld>com.tersesystems.logback</groupld>
		<artifactld>logback-honeycomb-playws_2.12</artifactld>
		<version>1.0.3</version>
	</dependency>
</dependencies>

Maven依赖

依赖管理

  • 依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖。
  • 配置:
    1. pom. xml中编写 <dependencies> 标签
    2. <dependencies> 标签中使用 <dependency> 引入坐标
    3. 定义坐标的groupld,artifactld,version
    4. 击刷新按钮,引入最新加入的坐标依赖

如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中去搜索。

依赖传递

  • 依赖具有传递性
    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
    • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

image.png

  • 排除依赖
    • 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本
<dependency>
	<!--引入的依赖-->
	<groupld>com.tersesystems.logback</groupld>
	 <artifactld>logback-honeycomb-playws_2.12</artifactld>
	 <version>1.0.3</version>
	 
	<exclusions>
	<!--排除的依赖-->
	<!--随别写的,大家知道怎么用就好-->
		<exclusion>
		<groupld>junit</groupld>
		<artifactld>junit</artifactld>
		</exclusion>
	</exclusions>
</dependency>

依赖范围

  • 依赖的jar包,默认情况下,可以在任何地方使用。可以通过 <scope>..</scope> 设置其作用范围作用范围
    • 主程序范围有效(main文件夹范围内)
    • 测试程序范围有效(test文件夹范围内)
    • 是否参与打包运行(package指令范围内)
<dependency>
	<!--引入的依赖-->
	<groupld>com.tersesystems.logback</groupld>
	 <artifactld>logback-honeycomb-playws_2.12</artifactld>
	 <version>1.0.3</version>
	 <scoper>test</scope>     # 控制依赖范围
</dependency>

scope的取值:

image.png

Maven的生命周期

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

  • Maven中有3套相互独立的生命周期
    • clean:清理工作
    • default:核心工作,如:编译、测试、打包、安装、部署等
    • site:生成报告、发布站点等

image.png

  • clean:清除上一次构建生成的文件
  • compile:编译项目源代码
  • test:使用合适的单元测试框架运行测试
  • package:将编译后的文件打包,如:jar、war等
  • install:安装项目到本地仓库

注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。

分别是clean、default、site三套生命周期。

注:Maven的所有工作都是由对应的插件来完成工作的。

免责声明:此片文章是个人学习笔记,存在借鉴,若有冒犯或侵权,联系可删除。

posted @ 2024-04-29 23:21  不柴  阅读(40)  评论(0编辑  收藏  举报