一、基本概念
1.jar包冲突:最短路径者优先和先声明者优先
2.Maven是一款自动化构建工具
-
构建:编译、部署
3.构建环节:清理、编译、测试、报告、打包、安装(jar包、war包安装到本地仓库)、部署
二、安装及配置
1.将程序安装于非中文非空格目录下,并配置好环境变量
2.仓库:先于本地仓库寻找,再联网去中央仓库寻找
-
Maven默认的本地仓库:~\.m2\repository目录--家目录下
-
Maven的核心配置文件位置:程序\conf\settings.xml
-
修改本地仓库位置:<localRepository>
-
配置阿里云镜像(中央仓库):<mirror>
-
配置jdk:<profiles>
3.在idea中配置:setting-mavan:修改安装目录,配置文件位置,本地仓库位置
三、使用
1.创建project-module-maven
2.配置坐标(本地仓库位置)
-
公司域名倒叙+项目名
-
模块名
-
版本
3.目录结构
-
main:存放主程序
-
java:源代码文件
-
resource:配置及资源文件
-
test:测试程序
4.核心配置文件pom.xml
-
可配置依赖(<dependencies>)
-
打包插件:可打包jar包的依赖(<build>)
四、核心概念
1.直接依赖,间接依赖
2.依赖的范围:
-
compile(默认):可Java、test、会部署服务器
-
test:只可test
-
provided:不会部署于服务器
3.依赖的传递性:主工程对间接依赖的jar不可访问,除非其为compile(只有compile才具有传递性)
4.依赖的原则(解决jar包冲突):最短路径者优先和先声明者优先
5.依赖的排除(有可能依赖重复):可以配置<exclusions>,编写排除依赖信息
6.jar包统一:可以配置在<properties>后,可重复使用
7.生命周期:最重要的为default,运行任何一个阶段的时候,它前面的所有阶段都会被运行
五、继承
1.将依赖信息统一提取到父工程模块中进行统一管理
2.创建父工程:
-
父工程打包方式为pom
-
该工程只需保留配置文件即可
3.子工程中引用父工程
-
配置父工程坐标<parent>
-
配置寻找父工程相对路径
4.在父工程中管理依赖
-
将父工程中dependencies标签,用dependencyManagement标签括起来
-
在子项目中重新指定需要的依赖,删除范围和版本号
六、聚合及其他
1.在总工程中使用<modules>,指定模块工程的相对路径即可--批量进行工程的安装(先执行总工程后才可生效)
2.maven酷站:http://mvnrepository.com/搜索需要的jar包的依赖信息
3.jar包因网差未下载完成,需要手动删掉重新下载