JAVA-Web后端学习1 Maven

我们从来都不知道做一件事情的意义到底是什么,这值得我们花一生去探索。

Maven

Maven是一款用于管理和构建Java项目的工具,是apache阿帕奇武装直升机旗下一个开源项目。

Maven作用

依赖管理:便于我们快捷管理项目依赖的jar包,无需在文件目录中添加,直接手动在pom.xml中添加即可
项目构建:标准化的跨平台(windows,Linux,Macos)自动化项目构建方式,从而实现一键编译、打包等
统一项目结构:提供标准、统一的项目结构,便于在不同开发工具之间切换

Maven坐标

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

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

Maven坐标构成如下:

groupId 定义当前Maven项目隶属组织名称
artifactId 定义当前Maven项目名称
version 定义当前版本号

<groupId>org.example</groupId>
<artifactId>maven1</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.16.1</version>
    </dependency>
</dependencies>

Maven集成中的依赖排除

由于Maven在引入依赖项目时会引入依赖的依赖,从而导致其和默认版本发生冲突,因此需要进行依赖排除从而防止冲突

如图所示,引入的依赖会有进一层的依赖
image

所以我们通过添加以及来进行依赖排除,可以看到添加依赖排除后plexus-utils部分不见了
image

Maven生命周期

Maven存在不同的生命周期。Maven 的生命周期(Lifecycle)是 Maven 构建过程的核心概念,它定义了项目从编译到部署的完整流程。Maven 的生命周期由一系列有序的阶段(Phase)组成,每个阶段都执行特定的任务。
我们只需要重点关注五个阶段即可:

clean 清理上一次构建的产物
compile 编译项目代码
test 使用合适的单元测试框架运行测试代码
package 打包代码,生成jar等
install 安装项目到本地

Maven依赖范围

Maven的pom.xml中添加的依赖是存在依赖范围,使用来标识,后接不同的取值表示不同的范围

image

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.9.1</version> 
    <scope>test</scope> //标志test范围
</dependency>

此时如果在main程序中调用,那么就会出现错误
image

Maven配置常见问题

Q:依赖文件下载出错出现残留文件影响下一次依赖文件的下载

A:这需要我们去依赖文件的文件夹中删除.lastUpdated文件,或者为了方便,使用命令行del /s *.lastUpdated删除所有文件

实在不行直接关闭项目重新加载,或者使用自定义的清理脚本文件

posted @ 2026-03-17 17:41  tcswuzb  阅读(1)  评论(0)    收藏  举报