依赖:
在maven的管理体系中,各个项目组成了一个复杂的关系网,但是每个项目都是平等的,是个没有贵贱高低,众生平等的世界,全球每个项目从理论上来说都可以相互依赖。依赖关系是最常用的一种,就是你的项目需要依赖其他项目。
junit
junit
4.11
test
jar</ type >
true</ optional >
groupId,必选,实际隶属项目
artifactId,必选,其中的模块
version必选,版本号
type可选,依赖类型,默认jar
scope可选,依赖范围,默认compile
optional可选,标记依赖是否可选,默认false
exclusion可选,排除传递依赖性,默认空
仓库:
Maven可以在某个位置统一存储所有Maven项目共享的构件,这个统一的位置就是仓库。实际的Maven项目将不再各自存储其依赖文件,它们只需要声明这些依赖的坐标,在需要的时候,Maven会自动根据坐标找到仓库中的构件,并使用它们。
仓库的分类:本地仓库和远程仓库。
对于Maven来说 ,仓库只分为两类:本地仓库和远程仓库,当Maven根据坐标找构件的时候,它首先会查看本地仓库 ,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本 ,就会去 远程仓库查找 ,发现需要的构件之后,下载到本地仓库再使用,如果本地仓库和远程仓库都没有需要的构件 ,Maven就会报错。
私服:
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。此外,一些无法从外部仓库下载到的构件也能从本地上传到私服上供大家使用。
生命周期:
Maven的生命周期就是为了对所有的构建过程进行抽象和统一。Maven从大量项目和构建工具中学习和反思,然后总结了一套高度完善的、易扩展的生命周期。这个生命周期包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生成 。
在maven中存在“三套”生命周期,每一套生命周期相互独立,互不影响,
在一套生命周期内,执行后面的命令,前面操作会自动执行。
CleanLifeCycle: 清理生命周期 Clean
defaultLifeCycle:默认生命周期 compile,test,package,install,deploy
slteLifeCycle:站点生命周期
插件:
Maven核心的分布包只有不到3MB的大小,Maven会在需要的时候下载并使用插件。
when
Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手。
Maven的安装目录介绍:
bin :该目录包含了mvn运行的脚本,这些脚本用来配置Java命令,准备好classpath和相关的Java系统属性,然后执行Java命令。其中mvn 是基于UNIX平台的shell 脚 本 ,mvn. bat 是 基 于 Windows 平 台 的 bat 脚 本 。在命令行输入任 何 一 条 mvn 命令时 ,实际上就是在调用这些脚本 。该目录还包含了mvnDebug 和 mvnDebug. bat 两 个 文 件 , 同 样 ,前 者 是 UNIX 平 台 的 shell 脚 本 ,后者是 Windows 平台的bat 脚本 。mvnDebug 多 了 一 条 MAVEN-DEBUG-OPTS 配 置 ,其作用就是在运行行 Maven 时开启 debug ,以便调试Maven 本 身 .此 外 ,该目录还包含m2. conf 文 件,这 是 classworlds的配置文件。
boot:该目录只包含一个文件。plexus-classworlds是一个类加载器框架,相当于默认的java类加载器,它提供了更丰富的语法以方便配置,maven使用该框架加载自己的类库。
conf:该目录包含了一个非常重要的文件setting.xml.直接修改该文件,就能在机器上全局地定制maven的行为。
lib:该目录包含了所有Maven运行时需要的java类库(jar包),Maven本身是分模块开发的。
**LICENSE.txt:**记录了Maven 使用的软件许可证 Apache License Version 2.0 。
NOTICE.txt:记 录了Maven包含的第三方软件 ;
README.txt:包含了Maven的简要介绍,包括安装需求及如何安装的简要指令等 。
why
Maven的两大核心:
依赖管理:对jar包统一管理
项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署一系列的操作都通过命令来实现
优点:
1、不再拷贝jar包。项目不需要存放灿包。导致项目滋代码刁
2、使用maven开发的工程,如果环境统一导入别的maven的项目不会报错
3、代码耦含度进一步降低.
4、方便项目进行廾缋
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总结
互联网大厂比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考。无论是哪家公司,都很重视高并发高可用技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。
**另外本人还整理收藏了2021年多家公司面试知识点以及各种技术点整理 **
下面有部分截图希望能对大家有所帮助。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
了2021年多家公司面试知识点以及各种技术点整理 **
下面有部分截图希望能对大家有所帮助。
[外链图片转存中…(img-3s8foHgz-1713547223898)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!