Maven是一个基于Java的项目管理工具
是什么
maven是一个项目管理工具
Make —> Aut —> Maven —> Gradle
能解决什么问题
-
依赖管理:maver工程将jar包放置在创建中,项目中那个只需要放置jar包的坐标。
-
一键构建:maven自身集成了tomcat插件,可以对项目进行编译,测试,打包,发布,安装等操作
引入Mavan之前:
可以看出“编译-打包-部署-测试”一直需要重复做,我们可以将这些工具交给机器自动完成-----> 自动化构建
Maven:可以自动的从构建过程的起点一直执行到终点
Maven的核心概念
Maven能够实现自动化构建是和它的内部原理是分不开的,这里我们从Maven的九大核心概念入手,看看Maven是如何实现自动化构建的
- pom
- 约定的目录结构
- 坐标
- 依赖管理
- 仓库管理
- 生命周期
- 插件和目标
- 继承
- 聚合
Maven的核心程序中仅仅定义了抽象的生命周期,而具体的操作则是由Maven的插件来完成的。
Mavem的插件并不包含在Maven的核心程序中,在首次使用时需要联网下载。
下载得到的插件会被保存到Maven的核心程序中,本地仓库默认位置是:~/.m2/repository。
仓库位置可以修改,具体参考:window下使用maven
POM
就是项目对象模型:将Java工程的相关信息封装为对象作为便于操作和管理的模型。
pom.xml是maven工程的核心配置。(学习maven主要就是学习怎么配置pom.xml)
什么是仓库
种类:
- 本地仓库:用来存储从远程仓库或者中央仓库下载的插件和jar包
- 远程仓库[私服]:可以在互联网内也可以在局域网内
- 中央仓库:在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包含了世界上大部分流行的开源项目构件
关系:当我们启动了一个maven工程的时候,maven工程会通过pom文件中jar包的坐标去本地仓库找对应jar包,默认情况下,如果本地仓库没有对应jar包,maven工程会自动去中央仓库下载jar包到本地仓库。在公司中,如果本地没有对应jar包,会从私服下载jar包。如果私服没有jar包,可以从重要仓库下载,也可以本地上传。
设置仓库:全局setting和用户setting【忽略,乱七八糟的】
maven仓库地址,私服等配置信息需要在setting.xml文件中配置,分为全局配置和用户配置。
在maven安装目录下有conf/setting.xml文件,此setting.xml文件用于maven的所有project项目,它作为maven的全局配置。
如需要个性配置则需要在用户配置中设置,用户配置的 setting.xml 文件默认的位置在:$ {user.dir}
/.m2/settings.xml 目录中,${user.dir} 指 windows 中的用户目录。
maven 会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。