Maven


一.需求 1.maven将jar包保存到本地,不同项目都指向了rp目录下所需要的的jar包 2.减少了寻找jar包的时间,通过gav,从远程仓库下载 3.maven可以自动导入依赖的jar包 4.maven可以拆分项目,原来都是通过package进行划分。有了maven就可以将项目划分成多个模块,模块间通过在pom文件中引入需要的模块的jar,来互相调用   二.maven是一个自动化的构建工具 构建过程包含: 1.清理 2.编译 3.测试 4.报告 5.打包 6.安装 7部署     maven的自动化构建就是自动的从构建过程的起点执行到结束。   三.maven项目的目录结构 1.根目录 2.src 3.pom文件 4.main 5.test 6.java 7.resource maven项目需要遵守一定的目录结构规范,因为项目使用maven构建,maven需要知道项目的结构。   四.常用maven命令 1.mvn clean 2.mvn test-compile 3.mvn compile 4.mvn install 5.mvn package 6.mvn deploy   maven核心程序中只定义了抽象的生命周期,但是具体的工作需要由特定的插件来完成。   五.pom文件 pom文件定义maven相关的一切设置 gav groupid:公司域名跟项目名 artifactid:模块名 version:版本   仓库搜索过程:本地仓库,中央仓库,远程仓库 私服,远程仓库镜像(中央仓库的复制版) 仓库中的内容:1.maven自身的插件 2.第三方jar包(第一方是jdk,第二方是自己) 3.自身项目的jar包   六.jar包依赖的范围 1.compile 对主程序有效 对测试程序有效 参与打包   2.test 对主程序无效 对测试程序有效 不参与打包   3.provided 对主程序有效 对测试程序有效 不参与打包 不参与部署 example:servlet-api.jar   七.Maven的生命周期 不论要执行生命周期中的哪个阶段,都要从头开始   八.jar包冲突 由于maven的依赖传递,当我们需要A的依赖的时候,就会在pom.xml中引入A的jar包;而引入的A的jar包中可能又依赖B的jar包,这样Maven在解析pom.xml的时候,会依次将A、B 的jar包全部都引入进来。 https://blog.csdn.net/noaman_wgs/article/details/81137893   maven默认的策略 1.路径最短 2.新声明   九.依赖传递 非compile范围的依赖不能传递 exclusion排除不需要的依赖   10.统一版本号 在properties中定义统一版本号   11.Maven的继承 创建一个maven工程为父工程,配置依赖的统一管理,打包方式为pom 在子工程中加上对父工程的引用 子工程中不需要添加父工程中已有依赖的版本号  

geek
org.wzp
1.0-SNAPSHOT
12.Maven的聚合 在父工程中指明参与的模块

LearnDubbo
LearnJdk
LearnSpring
LearnGson