目录
<<回到导览
Maven
Mave的作用:
-
方便的依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题
-
统一的项目结构:提供标准、统一的项目结构
-
标准化的项目构建:标准跨平台(Linux、Windows、MacOs)的自动化项目构建方式

1. Maven概述
1.1.安装配置Maven
解压缩后,配置maven
配置解压目录\conf\settings.xml
-
配置本地仓库
<!-- 这里要新建文件夹作为本地仓库的目录,这里我创建的是文件夹mvn_repo --> <localRepository>D:\APP\Maven\apache-maven-3.9.9-bin\apache-maven-3.9.9\mvn_repo</localRepository> -
配置阿里云私服
<mirrors> <!-- 阿里云私服 --> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> </mirrors> -
配置环境变量

控制台输入
mvn -v,系统如果识别这条命令成功,则说明环境变量配置成功
1.2.创建Maven项目
-
在创建项目时引入Maven

-
在已有项目中引入Maven

在项目根目录下添加pom.xml,并配置该文件(按自己的需求配置)
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>maven_demo</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </project>添加Maven项目:帮助 => 查找操作 => 添加maven项目,如果有下图的maven图标,则引入成功

1.3.项目结构介绍
src下有两个文件夹,一个是main(资源),一个是test(测试所需资源)
java文件夹下存放是所编写的java源代码,resources文件夹存放的是配置文件
test/resources默认没有创建,可以自己创建

- 我们在
src/main/java下创建项目com.jia.demo(你自己可以改包名) - 在demo.java中随便编写一个java程序并运行
- 运行后,项目根目录下生成文件夹target,用于存放我们代码编译产生的字节码文件
2.依赖管理
2.1.Maven坐标
- Maven 中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置。
- 使用坐标来定义项目或引入项目中需要的依赖。
Maven坐标主要组成:
-
groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
-
artifactld:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
-
version:定义当前项目版本号

2.2.依赖配置
添加依赖后,刷新Maven,依赖项出现要添加的依赖,则依赖配置成功
2.3.依赖传递
依赖传递的概念类似于javaee中的类的继承
直接依赖:当前项目中通过依赖配置建立的依赖配置建立的依赖关系
间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源


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

如果junit依赖被排除,则通过项目B传递下来的依赖junit不会被传递给该项目
2.4.依赖范围
依赖的jar包,默认情况下,可以在任何地方使用。可以通过
<scope>设置其作用范围
作用范围:
- 主程序范围有效。(main文件夹范围内)
- 测试程序范围有效。(test文件夹范围内)
- 是否参与打包运行。(package指令范围内)
| scope值 | 主程序 | 测试程序 | 打包(运行) | 范例 |
|---|---|---|---|---|
| compile(默认) | √ | √ | √ | log4j |
| test | √ | junit | ||
| provided | √ | √ | servlet-api | |
| runtime | √ | √ | jdbc驱动 |
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<scope>test</scope>
</dependency>
2.5.生命周期
Maven中有3套相互独立的生命周期:
- clean:清理工作。
- default:核心工作,如:编译、测试、打包、安装、部署等。
- site:生成报告、发布站点等。
| 生命周期阶段 | 说明 | 所属生命周期 |
|---|---|---|
| clean | 移除上一次构建生成的文件 | clean |
| compile | 编译项目源代码 | default |
| test | 使用合适的单元测试框架运行测试 | default |
| package | 将编译后的文件打包 | default |
| install | 安装项目到本地仓库 | default |
同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行
运行生命周期:双击Maven生命周期即可

892

被折叠的 条评论
为什么被折叠?



