导图社区 Maven
Maven的特性以及使用部署方法,Maven介绍:Maven是一款为Java项目构建管理、依赖管理的工具(软件),使用Maven可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
编辑于2024-09-11 15:39:10微信小程序开发知识整理,系统地介绍了微信小程序开发的基础知识,帮助开发者更好地理解和掌握小程序开发的要点和流程。
SpringFramework技术的介绍,SpringFramework,通常简称为Spring,是一个开源的企业级Java应用程序框架,由Rod Johnson创建,并于2004年首次发布。Spring Framework的主要目标是简化企业级Java开发,提高开发效率和应用程序的可维护性。
Maven的特性以及使用部署方法,Maven介绍:Maven是一款为Java项目构建管理、依赖管理的工具(软件),使用Maven可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
社区模板帮助中心,点此进入>>
微信小程序开发知识整理,系统地介绍了微信小程序开发的基础知识,帮助开发者更好地理解和掌握小程序开发的要点和流程。
SpringFramework技术的介绍,SpringFramework,通常简称为Spring,是一个开源的企业级Java应用程序框架,由Rod Johnson创建,并于2004年首次发布。Spring Framework的主要目标是简化企业级Java开发,提高开发效率和应用程序的可维护性。
Maven的特性以及使用部署方法,Maven介绍:Maven是一款为Java项目构建管理、依赖管理的工具(软件),使用Maven可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
Maven
一、 Maven简介和快速入门
1. Maven介绍:Maven是一款为Java项目构建管理、依赖管理的工具(软件),使用Maven可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量
2. Maven主要作用
1||| 依赖管理:在Java需要使用第三方库时,Maven软件会自动下载并复制这些依赖到项目中,也会自动下载依赖所需要的依赖!确保依赖版本正确无冲突和依赖完整
2||| 项目开发完成后可以使用构建命令(mvn package)快速项目构建和打包
3||| 构建管理:Maven可以管理项目的编译、测试、打包、部署等构建过程。通过实现标准的构建生命周期
4||| 能满足项目构建要求的项目结构(无论使用IDEA还是Eclipse,使用Maven构建项目后IDEA充当的是代码提示的角色)
二、 工程搭建(基于Maven)
1. 创建Java普通工程(使用IDEA)
1||| 创建普通工程后选择构建系统为Maven
2||| 选择高级设置构建详细信息
2. 创建Java web工程
(1) 手动创建方式
1||| 创建完Javase Maven工程后在main文件架构下手动补全web工程结构
2||| pom.xml文件中添加打包方式为war
3||| 刷新项目
(2) 插件创建
三、 Maven核心功能依赖和构建管理
1. 在pom.xml文件中进行依赖的管理和构建
2. 第三方依赖使用<dependencies></dependencies>标签(依赖信息的集合)
<dependency></dependency> (代表单个依赖)
3. 第三方依赖获取方式
1||| https://mvnrepository.com
2||| 使用maven插件(maven-search)
安装完插件后再Tools菜单下即可直接搜索依赖
4. 当第三方依赖过多时为了统一管理可以在<properties>标签下进行版本定义,在调用时使用${ }进行引用
5. 可选属性scope:引用依赖的作用域
四、 Maven依赖传递和依赖冲突
1. 依赖传递特性:当一个模块或库A依赖于另一个模块或库B,而B又依赖于模块或库C,那么A会间接依赖于C。这种依赖传递结构可以形成一个依赖树。当我们引入一个库或者框架时,Maven会自动解析和加载其所有的直接和间接依赖,确保这些依赖都可用。依赖传递的作用有:
1||| 减少重复依赖:当多个项目依赖同一个库时,Maven可以自动下载并且只下载一次该库。这样可以减少项目的构建时间和磁盘空间
2||| 自动管理依赖:Maven可以自动管理依赖项,使用依赖传递,简化了依赖项的管理,使项目构建更加可靠和一致
3||| 确保依赖版本正确性:通过依赖传递的依赖他们之间不会存在版本兼容性问题,确保依赖的版本正确性
2. 依赖冲突:当发生重复依赖导入时会终止依赖传递(避免循坏依赖和重复依赖的问题)
依赖冲突展示图
依赖冲突解决原则
1||| 谁短谁优先(依赖引用路径的长度)
2||| 当引用路径长度一致时,谁上谁优先(dependencies声明的先后顺序)
五、 Maven依赖下载失败问题解决
1. 下载依赖时出现网络故障或仓库服务器宕机等原因,导致无法连接至 Maven 仓库,从而无法下载依赖
2. 依赖项的版本号或配置文件中的版本号错误,或者依赖项没有正确定义,导致 Maven 下载的依赖项与实际需要的不一致,从而引发错误
3. 本地 Maven 仓库或缓存被污染或损坏,导致 Maven 无法正确地使用现有的依赖项,并且也无法重新下载
出现该情况时到本地文件夹内找.last文件删除后重新下载,可以在pom.xml文件中找到对应依赖按Ctrl,然后按Ctrl+alt+F12后选择当前文件即可进入本地文件目录
六、 Maven构建动作扩展
1. 构建概念:项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源代码、链接依赖库、打包和部署等多个程序
(1) 主动触发场景
1||| 重新编译:编译不充分,部分文件没有被编译
2||| 打包:独立部署到外部服务器软件,打包部署
3||| 部署本地或者私服仓库:Maven工程加入到本地或者私服仓库,供其他工程使用
(2) 命令方式触发,语法:mvn 构建命令 (部署必须是jar包)
1||| mvn clean:清理编译或打包后的项目结构,删除target文件夹
2||| mvn compile:编译项目,生成target文件
3||| mvn test:执行测试源码
4||| mvn site:生成一个项目依赖信息的展示界面
5||| mvn package:打包项目,生成war/jar文件
6||| mvn install:打包后上传到Maven本地仓库(本地部署)
7||| mvn deploy:只打包,上传到Maven私服仓库(私服部署)
需要进入到项目的根路径,选择Terminal后使用cd命令进入项目根路径
(3) 可视化方式创建
2. 当war包打包失败是可能是Maven自带的版本不匹配,需要自行更新打包插件
七、 Maven继承和聚合特性
1. Maven工程的继承关系
(1) 概念:Maven继承是指在Maven项目中,让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一配置信息,简化项目的管理和维护工作
(2) 作用:在父工程中统一管理项目中的依赖信息,进行统一版本管理
(3) 继承语法
1||| 父工程
i. 在父工程中主要做配置的基本信息,不打包也不写代码,需要删除src文件夹
ii. 新建子工程时选择父工程即可完成继承关系
(4) 父工程声明版本信息
<dependencyManagement>标签中声明的依赖并不会直接导入工程,仅仅只是做声明而已,当子工程需要继承父工程中声明的依赖时,只需要在子工程的pom.xml文件中提供g a属性即可
2. Maven工程的聚合关系
一般来说在创建子工程,父工程中的modules标签下会自动添加子工程的artifactId,也就是自动聚合,如果父工程的modules中没有子工程的artifactId则需要手动添加
(1) 概念: Maven聚合是指将多个项目组织到一个父级项目中,通过触发父工程的构建,统一按顺序触发子工程构建的过程
(2) 作用
1||| 统一管理子项目构建:通过聚合,可以将多个子项目组织在一起,方便管理和维护
2||| 优化构建顺序:通过聚合,可以对多个项目进行顺序控制,避免出现构建依赖混乱导致构建失败的情况
(3) 聚合语法