Maven学习总结

学习课程视频链接:

尚硅谷新版Maven教程(高效入门maven,上手又快又稳)_哔哩哔哩_bilibili 

尚硅谷新版SSM框架全套视频教程,Spring6+SpringBoot3最新SSM企业级开发_哔哩哔哩_bilibili

 

核心知识点:

依赖管理 项目构建 继承关系 聚合关系 maven项目搭建

以下是一些零碎的知识点总结:

maven的gvap属性:
groupid:com.{公司/BU}.业务线.{子业务线},最多4级
artifactid:    产品线名-模块名,语义不重复不遗漏
version版本号格式推荐:主版本号.次版本号.修订号
packaging: .jar  .war  .pom,打包默认是jar包


将maven的web工程部署到tomcat中:点击"edit configurations",添加tomcat(local)即可。


maven工程的项目结构:326726af332b4ce68f42c111f46a4477.png

 
mvn compile: 编译项目,生成target文件,将java类编译成字节码文件
mvn clean:     清理,target被删除
mvn package:打包成jar包或者war包,保存在target目录下
mvn install:   将jar或war包安装到本地仓库,通过坐标gva找jar包
maven构建过程是需要jar包的支持
构建命令周期,会自动执行之前的操作。分为清理周期,默认周期,报告周期(mvn site)
周期包含若干个命令,命令包含若干个插件,最终进行构建的是插件。


通过定义pom文件,maven能够自动解析项目的依赖关系
通过自定义属性管理版本:version,统一规定在properties标签中,在dependencies用${}引用


scope标签:依赖范围,可以设置对应的jar包作用范围:编译环境、测试环境、运行环境。
compile:默认的环境,三个classpath都可以被引入。
test:在核心程序中无法使用,测试在打包之前,所以在war或者jar包里面没有测试的代码,测试相关的依赖也不会在jar或者war包里面。
provided:已提供依赖范围,被当前服务器Tomcat提供。编译、测试可以,不可以运行,包里也没有。例如:servlet-api。
system:系统依赖范围,不推荐使用。
runtime:main不会test不会有用,打包和运行时有效。
注意:scope是一种锦上添花的手段,如果掌握不好,就默认值,全部生效,一定不会出错。


maven中的dependencies下是引入第三方的依赖信息,打jar包。
maven在war打包时,自带的插件版本太低,无法匹配jdk17版本,需要在pom中加入一段代码build标签/plugins/plugin标签下引入插件,插件也有gva。


插件就是本地仓库中的一些jar包,插件也有坐标gva。


maven工程下build标签构建的使用场景:
1.自定义打包名称<finalName>标签,记得后缀 .war或者 .jar
2.java下的配置文件(写在resources下的)不会被打包中。在build标签里面加入resources标签,指定资源所在目录中的资源类型。b4a3b1ffbd7a42c09b5e761fd5366d5e.png
3.plugins标签,打包插件版本过低,配置更高版本插件。d6fdcbd3766a4c558cd5bf4d929622a1.png

  
依赖是否可以传递,若是compile则可以传递,若是test或provided范围,不能传递。
通过dependency标签的option标签来终止依赖的传递,option中写一个true。9106121594b9450faaf41d2102f4e073.png

 

依赖冲突会导致依赖传递终止。只要发生冲突了,后续的依赖传递全部终止
如何解决,解决方式:
①maven自动解决:1.引用路径短路优先原则  2.路径长度相同,先声明优先。要有自己的判断,idea会有显示性的问题。
②手动解决:在dependency标签中写入exclusions标签,排除依赖。a6e13f3afab8410990b965140c6a0a95.png

 


maven工程继承关系(在子工程中有parent标签表示继承):继承的是配置信息
作用:在父工程中统一管理项目的依赖信息
maven工程可以多层继承。
父工程不需要参与打包,因此打包方式应该为pom,必须要写出是pom方式打包;父工程中不需要写java代码,可以删除src。
dependencies标签,只要是父工程中的依赖都会无条件继承给子工程。
在父工程中用dependencyManagement依赖管理,此时不会导入依赖,在子工程需要手动选择继承哪些依赖,子工程的dependencies标签中,此时继承不需要写version,只需要写groupID和artifactID,此时父工程中没有依赖,只在选择导入的子工程中有。


maven工程聚合关系(在父工程有modules标签表示聚合):一键操作,一键构建。对父工程进行怎样的操作,对子工程就有相同的操作
作用:
1.将多个子项目组织在一起,方便管理和维护
2.优化构建顺序,避免出现构建依赖混乱导致构建失败的情况
3.统一管理依赖项,避免重复定义


maven私服是一种特殊的maven远程仓库,是架设在局域网内的仓库服务,用来代理位于外部的远程仓库
maven私服的优势:节省外网带宽;下载速度更快;便于部署第三方构建; 提高项目的稳定性,增强对项目的控制; 降低中央仓库的负荷压力

 

 

maven是一个软件,为java服务,作用是项目构建和依赖管理。
项目构建:是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源代码、连接数据库、打包和部署等多个过程。
maven项目构建的过程:清理、编译、测试、报告、打包、部署(部署必须是jar包形式)
依赖管理:maven可以管理项目的依赖,包括自动下载所需依赖库,自动下载依赖所需要的依赖并且保证版本没有冲突、依赖版本管理等。通过maven可以更加方便的维护项目所依赖的外部库,我们只需要编写配置即可。


注意:配置maven环境变量时,要在用户变量和系统变量中都要设置。


如何在idea中创建maven的web工程,以下是步骤:
方式一:手动创建web项目
1.创建一个javase maven工程
2.补全文件结构,main-webapp-WEB-INF-web.xml
3.pom.xml里面打war包
4.刷新maven,多小蓝点
方式二:使用插件jbl工具进行web工程管理
1.安装jbl插件
2.创建一个javase maven工程
3.maven工程-右击-jbltoweb

 

笔记代码在maven- test工程里
 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值