【Maven】《十分钟搞清Maevn项目》

发布于:2025-09-05 ⋅ 阅读:(13) ⋅ 点赞:(0)

一、Maven

(1)介绍:

Maven是apache旗下的一个开源项目,它基于项目对象模型POM (Project Object Model) 的概念,通过一小段描述信息来管理项目的构建。

(Apache软件基金会,成立于1999年,是目前世界上最大的开源软件基金会)

在这里插入图片描述

仓库:用来存储资源,管理各种jar包。

  • 本地仓库:自己计算机上的一个目录
  • 中央仓库:由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2/
  • 远程仓库(私服)

各个插件就是清理,编译,测试,打包等

(2)作用:

一共三个作用:依赖管理、统一项目结构,项目构建

1.依赖管理

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

2.统一项目结构

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

在这里插入图片描述

3.项目构建

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

清理->编译->测试->打包->发布

在这里插入图片描述

(3)maven坐标

1.maven坐标概念

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

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

2.mave坐标主要组成

①groupid:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.baidu)

②artifactid:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)

③version:定义当前项目版本号

<dependency>
	<groupid>ch.qos.logback</groupid>
     <artifactid>logback-classic</artifactid>
     <version>1.2.3</version>
</dependency>

maven坐标通常在创建maven项目的时候输入,然后会在pom文件中显示出来;

(4)idea中设置:

(关闭项目之后,在Idea的主界面设置即可保持全局设置)

选择Maven的路径,并在runner(运行程序)中选择JRE

在这里插入图片描述

设置Java编译器,字节码版本选择对应的即可

在这里插入图片描述

idea导入maven工程:

​ 先将maven工程文件复制到项目文件夹中,然后可以在右侧的maven的加号中添加导入工程的pom.xml文件,或点击file->Project Structure点击加号导入pom文件,这样这个工程文件就会在项目中显示出来。

二、依赖管理

(1)依赖配置:

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

配置:

  1. 在pom.xml中编写标签
  2. 在标签中 使用引入坐标
  3. 定义坐标的 groupid,artifactid,version
  4. 点击刷新按钮,引入最新加入的坐标
<dependencies>
     <dependency>
		<groupid>ch.qos.logback</groupid>
     	<artifactid>logback-classic</artifactid>
     	<version>1.2.3</version>
	</dependency>
</dependencies>

注意事项:

  • 如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。(这个过程会比较耗时,耐心等待)
  • 如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索

(2)依赖传递

1.依赖具有传递性

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

在这里插入图片描述

2.排除依赖

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

<dependency>
	<groupid>ch.qos.logback</groupid>
     <artifactid>logback-classic</artifactid>
     <version>1.2.3</version>
     
     <!-- 排除依赖: -->
     <exclusions>
          <exclusion>
               <groupid>junit</groupid>
          	<artifactid>junit</artifactid>
          </exclusion>
          
     </exclusions>
</dependency>

在这里插入图片描述

(3)依赖范围

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

<dependency>
	<groupid>ch.qos.logback</groupid>
     <artifactid>logback-classic</artifactid>
     <version>1.2.3</version>
     <!-- 依赖范围 -->
     <scope>test</scope>
     
</dependency>
scope值 主程序 测试程序 打包(运行) 范例
complie(默认) Y Y Y log4j
test Y junit
provided Y Y servlet-api
runtime Y Y jdbc驱动

作用范围说明:

  • 主程序范围有效。(main文件夹范围内)
  • 测试程序范围有效。(test文件夹范围内)
  • 是否参与打包运行。(package指令范围内)

在这里插入图片描述

main中是主程序,test是测试程序,打包后的jar包可在target文件夹中找到

(4)生命周期

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

maven中有3套互相独立的生命周期:

  1. clean:清理工作
  2. default:核心工作,如:编译、测试、打包、安装、部署等
  3. site:生成报告、发布站点等

执行生命周期在idea右侧maven面板中选择对应生命周期即可。

生命周期本质上是maven各个插件的执行。

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

不一套的话,互不影响;

比如运行text不会执行clean但是会执行compile

在这里插入图片描述

生命周期阶段:

  1. clean:移除上一次构建生成的文件
  2. compile:编译项目源代码
  3. test:使用合适的单元测试框架进行测试(junit)
  4. package:将编译后的文件打包,如:jar、war等
  5. install:安装项目到本地仓库