Maven 基础知识总结笔记 (一)

我们使用mvn compile之后,会生成一个target文件,里面还会有两个文件:

在这里插入图片描述


一个是存储生成的字节码,一个是存储maven的状态文件(不确定)。

之后我们使用mvn test 测试时,还会在target文件中生成另外两个文件:

在这里插入图片描述


一个是存储报告的文件,一个是存储测试的字节码文件。

再然后我们执行mvn package来进行打包,这个是后target文件还会生成两个文件:

在这里插入图片描述

其中jar包中就包含了程序的字节码。

需要注意,上面是有先后顺序的,必须编译后,测试,测试后才能打包!


在让后,我们使用mvn install 命令将我们打包好的东西放到仓库中。

在这里插入图片描述

我们之前groupid定义的路径就是我们放置仓库的路径,也和mvn的坐标gav对应起来。

11. 使用Maven插件来创建工程(了解,一般用不上)

==========================================================================================


在这里插入图片描述

像通过上面的命令来操作的直接通过cmd命令创建工程。

在这里插入图片描述

12.使用idea来创建Maven工程

================================================================================


首先,我们先进入setting =》搜索maven,设置好maven路径和maven的setting.xml配置文件,再配置好本地仓库路径。

在这里插入图片描述


上面配置好了,我们就可以通过idea来创建。

第一步:点击右上角的符号来创建。

在这里插入图片描述

第二步:创建一个maven项目。

在这里插入图片描述

第三步:设定好名字和坐标!

在这里插入图片描述

第四步:设定结构,对应的结构要设定好!

在这里插入图片描述

在这里插入图片描述

这样一个标椎的maven工程就创建出来了。


我们之前mvn命令对应的在idea中也有:

在这里插入图片描述

直接双击就运行对应的命令。


maven的debug运行如何设置呢?

首先,点击edit Configurations…

在这里插入图片描述

然后添加一个maven:

在这里插入图片描述

之后我们就可以debug,打断点来调试测试了:

在这里插入图片描述

13. Maven 使用idea的模板(骨架)创建项目

=========================================================================================


在这里插入图片描述

13.1 使用模板(骨架)创建java项目



在这里插入图片描述

就是在创建的时候记得添加archetype中的quickstart。创建后可能缺少一些结构什么resource目录,可以自行添加并且声明文件类型。。

13.2 使用模板(骨架)创建web项目



同样,web项目就要添加webapp骨架。

在这里插入图片描述

也是缺少一些结构需要自己添加并且声明文件类型。

14. Maven tomcat插件安装与web启动

========================================================================================


通过maven来安装tomcat插件,步骤如下:

第一步:创建一个webapp工程,设定好结构等等。

在这里插入图片描述

第二步:配置pom.xml文件如下:(重点看build中的插件内容)

<?xml version="1.0" encoding="UTF-8"?>

4.0.0

war

WebAppTest01

com.test

WebAppTest01

1.0-SNAPSHOT

org.apache.tomcat.maven

tomcat7-maven-plugin

2.1

第三步:配置好后因为要加载插件等操作需要时间不要着急,加载完成后,打开右侧Maven项目,刷新一下,我们可以看到一个tomcat插件已经存进来了,直接双击run就可以运行tomcat了。

在这里插入图片描述

run运行后,当前项目就可以在上面运行了,并且会告诉你访问地址。

在这里插入图片描述


除了使用tomcat插件我们还可以配置tomcat插件:

<?xml version="1.0" encoding="UTF-8"?>

4.0.0

war

WebAppTest01

com.test

WebAppTest01

1.0-SNAPSHOT

org.apache.tomcat.maven

tomcat7-maven-plugin

2.1

9090

/


如果嫌弃一直点击run麻烦,我们也可以在页面再添加一个maven执行命令。

在这里插入图片描述

当然一般这种情况是用来debug的。


下面介绍一下pom.xml常用的配置的说明:

<?xml version="1.0" encoding="UTF-8"?>

4.0.0

war

WebAppTest01

com.test

WebAppTest01

1.0-SNAPSHOT

org.apache.tomcat.maven

tomcat7-maven-plugin

2.1

9090

/

junit

junit

4.12

15. Maven 依赖

==========================================================================

15.1 依赖



依赖指当前项目运行所需的jar,一个项目可以设置多个依赖,它就是通过pom.xml下的dependencies来设置。

在这里插入图片描述

15.2 依赖传递


15.2.1 直接依赖 和 间接依赖


在这里插入图片描述

简而言之,就是项目1依赖于项目2,那么项目1也会依赖项目2所依赖的内容,自然这些依赖了的内容也是可以让项目1使用的,这就是依赖传递。

当然因为上面这种情况,也就分为了:直接依赖和间接依赖。

在这里插入图片描述

15.2.2 依赖传递的冲突问题



冲突问题就是可能依赖的插件或包中,有版本不同的,不同层级的。

下面的路径优先和声明优先必须知道!

在这里插入图片描述

16. Maven 可选依赖 和 排除依赖

===================================================================================


可选依赖指对外隐藏当前所依赖的资源 (不透明)。

在dependency标签下有一个optional标签,该标签声明为true就可以对外隐藏所依赖的资源,默认为false。

在这里插入图片描述

这里我们是项目1是依赖了项目2 , 上面的情况是在项目2中配置,从而让项目1看不到。


接下来我们可以在项目1中配置,不想看到项目2的依赖。

这就用到排除依赖:

注意:排除依赖和可选依赖不一样,虽然效果相同,但排除依赖是主动断开这个依赖资源!换句话说,就是当前依赖我们不使用,就可以排除了。

使用exclusions标签来配置:

在这里插入图片描述

17. Maven 依赖范围

============================================================================


scope标签,是用来定义Maven的依赖范围的。

在这里插入图片描述

scope范围如下:

  • compile(也是默认):在main中执行,在test中执行,打包也要打包进去。例如:log4j,无论什么时候都需要日志记录啊。

  • test:就是仅仅在test模块结构中使用,例如:junit。

  • provided:在main中执行,在test中执行,但是有些情况是绝对不能参与打包的,例如:servlet-api,如果打包添加了一个2版本,但是服务器是3版本,这样我们将包放到服务器,就版本不同奔溃了呀。

  • runtime:仅仅是打包能参与。

我们也可以通过右侧Maven项目看依赖的范围是多少。

在这里插入图片描述


依赖范围的传递性:

在我们依赖传递的过程中,设定的scope范围可能彼此不相同。

在这里插入图片描述

18. Maven 生命周期 与 插件

=================================================================================

18.1 Maven 生命周期(lifecycle)



Maven构建生命周期描述的是一次构建过程经历了多少个事件。

Maven对项目构建的生命周期划分为3套。

  • clean:清理工作。

  • default:核心工作,例如:编译,测试,打包,部署等。

  • site:产生报告,发布站点。


clean构架的生命周期又分为下面3个阶段:

  • pre-clean:执行一些需要在clean之前完成的工作。

  • clean:移除所有上一次构建生成的文件。

  • post-clean:执行一些需要在clean之后立刻完成的工作。


default构建的生命周期有很多阶段,见图下:

在这里插入图片描述

而我们执行哪一个命令,其实就是从上向下的一个执行步骤。

例如:我们执行compile命令,只需要从第一个到complie就可以了。我们执行install命令,那我们就需要从第一个执行到install命令,期间也执行了compile和test等命令,这就是生命周期的一个效果。

在这里插入图片描述


site构建生命周期的四个阶段:

  • pre-site:执行一些需要在生成站点文档之前完成的工作。

  • site:生成项目的站点文档。

  • post-site:执行一些需要在生成站点文档之后完成的工作,并且为部署做准备。

  • site-deploy:将生成的站点文档部署到特定的服务器上。

18.2 Maven 插件



插件和生命周期内的阶段是绑定的!在执行到对应生命周期时执行对应的插件过程。

也就是插件时可以伴随上面生命周期的阶段来运行的,可以让我们自定义其他功能,这个时候需要定义好execution标签如下:

在这里插入图片描述

复习的面试资料

这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)

  • 第一部分:Java基础-中级-高级

image

  • 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)

image

  • 第三部分:性能调优(JVM+MySQL+Tomcat)

image

  • 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)

image

  • 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)

image

  • 第六部分:其他:并发编程+设计模式+数据结构与算法+网络

image

进阶学习笔记pdf

  • Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法

image

  • Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis

image

image

image

  • Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka)

image

image

image

  • Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)

image

image

ringBoot+SpringCloud+Dubbo)**

[外链图片转存中…(img-9SxuE7M2-1714417020303)]

  • 第六部分:其他:并发编程+设计模式+数据结构与算法+网络

[外链图片转存中…(img-b72SHCbw-1714417020303)]

进阶学习笔记pdf

  • Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法

[外链图片转存中…(img-cJRrSMSK-1714417020304)]

  • Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis

[外链图片转存中…(img-W4YE82hb-1714417020304)]

[外链图片转存中…(img-aQj4gRIV-1714417020304)]

[外链图片转存中…(img-0pXMarpi-1714417020305)]

  • Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka)

[外链图片转存中…(img-485YDOkz-1714417020305)]

[外链图片转存中…(img-QDtHcGm1-1714417020305)]

[外链图片转存中…(img-hnrRxSzA-1714417020306)]

  • Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)

[外链图片转存中…(img-kivKt0NX-1714417020306)]

[外链图片转存中…(img-Fd7Fc3cY-1714417020306)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值