立山 发表于 2025-4-11 21:09:42

Maven 基础知识

1. Maven 

1.1 概述

apache 旗下的一个开源项目
一款用于管理和构建 Java 项目的工具 
(Apache 软件基金会,成立于 1997年7月
是世界上最大最受欢迎的开源软件基金会
是一个专门为支持开源项目而生的非营利性构造 )
1.2 作用

https://i-blog.csdnimg.cn/direct/b438b1be9a1f498c8dc8b4d644bfbd0f.png
1.2.1 依赖管理

若不使用 Maven ,必要手动下载并导入相关 jar 包到项目中
倘若对部分 jar 包进行升级,相关依赖的  jar 包也要升级
这些都非常繁琐
而 Maven 可以方便快捷的管理项目以来的资源( jar 包),避免版本冲突问题
1.2.2 统一项目布局

差别Java集成环境开发工具构建的 Java 项目的目录布局有差别
以致创建的 Java 项目不能导入到其他开发工具中
而 Maven 可以提供统一尺度的项目布局
https://i-blog.csdnimg.cn/direct/1df3af61241c44cbb21bfc64391f1296.png
1.2.3 项目构建

每个项目都要经过编译 测试 打包 发布
大型项目的模块较多,执行这些流程较繁琐
而 Maven 提供了尺度的构建流程,可以快速完成编译 测试 打包 发布的工作
https://i-blog.csdnimg.cn/direct/d09180ae59054e6c94432fc12d9b8f95.png
1.3 介绍

Maven 基于项目对象模子(Project Object Model),通过一小段描述信息来管理项目的构建
 Maven 模子分三部分:
        构建生命周期阶段:通过各种各样的插件完成各种功能
        项目对象模子:通过 pom.xml 文件中配置的信息描述 Maven 工程
        依赖管理模子:若当前的项目工程中还必要其他依赖资源,就可以在 pom.xml 文件中添加添加依赖管理模子 
https://i-blog.csdnimg.cn/direct/469380ee71d7462aaa8aaf4b05cda921.png
添加的依赖从本地仓库中下载,本地仓库没有会连接私服(远程仓库)
私服没有会连接中心仓库
再从中心仓库将相关 jar 包下载到私服
最后从私服下载到本地仓库
https://i-blog.csdnimg.cn/direct/620fa886589c41778589842a000bd96b.png
1.4 安装

安装步骤: 解压        配置本地仓库        配置阿里云私服        配置环境变量
前三个步骤网络上有很多教程,这里不详细叙述
1.4.1 配置环境变量

配置环境变量为单个项目配置 / 配置Maven 环境(全局)两种
一样寻常我们配置 Maven 的全局环境变量
https://i-blog.csdnimg.cn/direct/4c3be8c76d2b4fcabc4cfec6ea57d2f6.pnghttps://i-blog.csdnimg.cn/direct/f4e1d273974f415e9cd48ce83191b189.pnghttps://i-blog.csdnimg.cn/direct/768b1d4edd1c421cadc0f8560c1f2001.pnghttps://i-blog.csdnimg.cn/direct/add5b84ef21e4286944576c3920d43e4.pnghttps://i-blog.csdnimg.cn/direct/a08035a2b2b041ae8267c2937a2eaee7.png
1.5 创建 Maven 项目

https://i-blog.csdnimg.cn/direct/67c311203d8a4bae9f716cc1fd849547.png
https://i-blog.csdnimg.cn/direct/8f3ae8d2af4347a1842365668e6117c3.png
https://i-blog.csdnimg.cn/direct/5ef538ce33684aa7b05961040395062f.png
https://i-blog.csdnimg.cn/direct/3cc366f8c9334786aaf3850bf5ff4af7.pnghttps://i-blog.csdnimg.cn/direct/1a65577e0914446797f6fa059b677c74.png
https://i-blog.csdnimg.cn/direct/d8e5305da6ce491cb31708462520c7f2.png
在 Java 包下创建 Java 文件进行测试
https://i-blog.csdnimg.cn/direct/03b42749cf454c6197cb7477fb3d2b22.png
https://i-blog.csdnimg.cn/direct/c327aec401e240599b0a1526e0165a5b.png
1.6 Maven 坐标

1.6.1 概述

是资源的唯一标识,通过坐标可以唯肯定位资源位置
通过坐标界说项目或引入项目中必要的依赖
1.6.2 主要组成

groupid:界说当前 Maven 项目从属构造名称(通常是域名反写)
artifactid:界说当前 Maven 项目名称(通常是模块名称)
version:界说当前项目版本号
https://i-blog.csdnimg.cn/direct/85746eb49d444a7da902115d1d0e689d.png
1.7 导入 Maven 项目

选择右侧 Maven 面板,点击 “ + ” 号
选中对应项目的“ pom.xml ” 文件,双击即可
https://i-blog.csdnimg.cn/direct/3a821a9b15744e56bfa7a9f303b04de7.png
https://i-blog.csdnimg.cn/direct/95795a31235246549e913cc729290f39.png
2. 依赖管理

2.1 依赖配置

依赖:当前项目运行所必要的 jar 包,一个项目可以引入多个依赖
依赖第一次导入无法找到:
https://i-blog.csdnimg.cn/direct/df85f18b87cd4276b85ad9aed54cb40c.pnghttps://i-blog.csdnimg.cn/direct/94ddc30164944133a35c93c68216af65.pnghttps://i-blog.csdnimg.cn/direct/20b61e26e2a043c3a1ab4f8860319b21.pnghttps://i-blog.csdnimg.cn/direct/17d43fc5143d4cc8a8e679f4f88269a5.pnghttps://i-blog.csdnimg.cn/direct/c84cc263b5dd405489de2358dacb0f8c.png
2.2 依赖通报

依赖具有通报性
如上,只引入一个 jar 包,最后却出现了三个 依赖
https://i-blog.csdnimg.cn/direct/cda1f77ce0db47c4bd154cb20862fcb8.png
依赖分为直接依赖,间接依赖        
        直接依赖:当前项目中通过依赖配置建立的依赖关系
        间接依赖:被依赖的资源若依赖其他资源,当前项目间接依赖其他资源
https://i-blog.csdnimg.cn/direct/65fc96c050ea41ebb998ba9ad0cb3670.png
2.2.1 展示依赖

以图表情势展示依赖关系:
https://i-blog.csdnimg.cn/direct/5ead289bcdfe44758a53ceb2445f4b54.png
2.2.2 排除依赖

项目 A 依赖 项目 B ,项目 B 依赖 jar 包
但项目 A 不想依赖项目 B 的 jar 包
https://i-blog.csdnimg.cn/direct/aa9c0188c08c4991bf78383ae4ce684a.png
https://i-blog.csdnimg.cn/direct/49eeae9c836442a78245e613e1c53961.png
2.3 依赖范围


依赖的 jar 包
默认情况下,可以在任何地方使用
        主程序范围有用:main 文件夹范围内
        测试程序范围有用:test 文件夹范围内
        是否参与打包运行:package 指令范围内
可以通过 <scope> ... <scope> 设置其作用范围
https://i-blog.csdnimg.cn/direct/5b6e0bd53c424f95a2ef04ccf56c0c77.png
2.4 生命周期

生命周期:为了对所有的 maven 项目构建过程进行统一和抽象
Maven 中有 3 套相互独立的生命周期:
        clean:清算工作
        default:核心工作,如:编译,测试,打包,安装,部署等
        site:天生报告,发布站点等
生命周期涉及的阶段很多,其中 5  个是较为重要的
        clean:移除上一次构建天生的文件
        compile:编译项目源代码
        test:使用符合的单元测试框架运行测试
        package:将编译后的文件打包,如 jar,war 等
        install:安装项目到本地仓库
https://i-blog.csdnimg.cn/direct/6e253aa439464a39b5368912066ca160.png
2.4.1 阶段顺序

阶段是有顺序的,后面的阶段依赖前面的阶段
即在同一套生命周期中, 运行后面的阶段,其前面的阶段都会运行
如下,运行 package 阶段,会先运行 compile 阶段,test 阶段
由于他们都在 default 这同一生命周期中
运行 install 阶段,不会运行前面的 clean ,compile,test,package 阶段
由于他们不在同一生命周期中
https://i-blog.csdnimg.cn/direct/12e9d55260364904939d5a1a483adf92.png
2.4.2 执行指定生命周期

方式一:选中对应生命周期,双击执行
https://i-blog.csdnimg.cn/direct/1bcc554891b443229239474d2511bb7d.png
        clean:移除上一次构建天生的文件
https://i-blog.csdnimg.cn/direct/dc0eae15e859434da93ba57fe9924b48.png
        compile:编译项目源代码
https://i-blog.csdnimg.cn/direct/1bbac70d7eae406380f7f265afeca60a.png
      test:使用符合的单元测试框架运行测试
https://i-blog.csdnimg.cn/direct/c2573c8583034350954194f45a6d1a43.png
https://i-blog.csdnimg.cn/direct/cbe572b519a6427fa0dfa99e34f3e33c.png
        package:将编译后的文件打包,如 jar,war 等
https://i-blog.csdnimg.cn/direct/7acc8c09af6e418fb4644507efc942b6.png
        install:安装项目到本地仓库
https://i-blog.csdnimg.cn/direct/b28f7857cb394493870009b19e9bad2d.png
https://i-blog.csdnimg.cn/direct/47051874355446638ae25cdb0d84b55c.png
方式二:在命令行执行
https://i-blog.csdnimg.cn/direct/eb484af0221b400ca505eecf03275fd9.png
https://i-blog.csdnimg.cn/direct/e42631dce04642588eb4882ab65b9c8f.png
https://i-blog.csdnimg.cn/direct/be920ce097dd43e282c50222230fefb9.png
https://i-blog.csdnimg.cn/direct/e42f604941174f959bfbf63bc4f4b9f0.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Maven 基础知识