**Maven的核心程序只定义了一个抽象的生命周期,而具体的操作则由Maven插件完成。**但Maven插件不包含在Maven核心程序中,首次使用需要在线下载。下载的插件将保存到本地存储库。本地存储库的默认位置是:~.m2\repository。如果您无法连接到互联网,您可以使用我们提供的RepMaven.zip来解压它。1约定目录结构:约定目录结构是Maven实现自动构建必不可少的部分。以自动编译为例,Maven在下一步编译之前必须能够找到Java源文件,并且在编译之后必须有一个准确的位置来保存编译后的字节码文件。在开发过程中,如果我们需要让第三方工具或框架知道我们创建的资源在哪里,基本上有两种方式:①通过配置明确告诉它②基于第三方工具或框架的约定,Maven对项目目录结构化要求属于后一类。现在JavaEE开发领域普遍认同一个观点:约定>配置>编码。意思是能配置解决的问题就不编码,能根据协议解决的就不配置。而Maven之所以能够自动化构建我们的Java项目,是因为它指定了具体文件保存的目录。2POMProjectObjectModel:项目对象模型。将Java项目的相关信息封装成一个对象作为模型,方便运维和管理。Maven项目的核心配置。可以说学习Maven就是学习pom.xml文件中的配置。3坐标:3.1几何中的坐标[1]用平面中的两个向量x和y可以唯一确定平面中的一点。[2]利用空间中的x、y、z三个向量在空间中唯一确定一个点。3.2Maven坐标使用以下三个向量在Maven仓库中唯一确定一个Maven项目。[1]groupid:公司或组织域名倒序+当前项目名[2]artifactId:当前项目模块名[3]version:当前模块版本com.atguigu.mavenHello0.0.1-SNAPSHOT3.3如何通过坐标找到仓库中的jar包?[1]连接gavcom.atguigu.maven+Hello+0.0.1-SNAPSHOT1的三个向量[2]以连接后的字符串为目录结构,在仓库中搜索com/atguigu/maven/Hello/0.0。1-SNAPSHOT/Hello-0.0.1-SNAPSHOT.jar1※注意:进入仓库前必须安装我们自己的Maven项目。安装命令为:mvninstall4依赖Maven最关键的部分。我们使用Maven最重要的就是使用它的依赖管理功能。要理解和掌握Maven的依赖管理,我们只需要解决几个问题:4.1依赖的目的是什么当Ajar包使用Bjar包中的一些类时,A对B产生了依赖,这是概念描述。那么如何在项目中以依赖的方式引入一个我们需要的jar包呢?答案很简单,就是用dependencytag指定依赖jar包的坐标即可。com.atguigu.mavenHello0.0.1-SNAPSHOTcompile4.2依赖范围大家注意到,在上面的依赖信息中,除了目标jar包的坐标外,还有一个scope的设置,就是依赖的范围。依赖范围有几个可选值,我们使用的有:compile、test、provided。[1]从项目结构的角度理解编译和测试的区别4.3依赖中转4.4依赖排除如果我们在当前项目中引入一个依赖是A,A依赖B,那么Maven会自动让A依赖B引入当前项目,但在个别情况下,B可能是一个不稳定的版本,或者对当前项目有不好的影响。这时候我们可以在引入A的时候排除B。[1]场景示例[2]配置方法;"复制代码")com.atguigu.mavenHelloFriend0.0.1-SNAPSHOTjarcompilecommons-loggingcommons-logging;《复制代码》)[3]排除后的效果4.5依赖jar包的版本统一管理同一框架的一组jar包最好使用相同的版本。为了方便框架的升级,可以统一提取jar包的版本信息(类似JSTL表达式)4.1.1.RELEASE其中atguigu.spring.version部分为自定义标签。[2]引用之前声明的版本号;"复制代码")org.springframeworkspring-core${atguigu.spring.版本}...;《复制代码》)[3]其他用法UTF-84.6依赖原理:解决jar包冲突