Maven
优势:
jar包的坐标:pom.xml
两个核心功能:
1:依赖管理:传统的项目每一个项目引入自己的jar包
而maven项目利用本地仓库管理jar包,节省磁盘空间,增加jar包的利用率
2:一键构建
传统项目需要用户自己编译测试打包安装发布,而maven一键帮用户解决
maven的目录结构:
bin:存放了 maven 的命令,比如我们前面用到的 mvn tomcat:run
boot:存放了一些 maven 本身的引导程序,如类加载器等
conf:存放了 maven 的一些配置文件,如 setting.xml 文件
lib:存放了 maven 本身运行所需的一些 jar 包
仓库的区别:
本地仓库 :用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包, 优先从本地仓库查找
默认本地仓库位置在
u
s
e
r
.
d
i
r
/
.
m
2
/
r
e
p
o
s
i
t
o
r
y
,
{user.dir}/.m2/repository,
user.dir/.m2/repository,{user.dir}表示windows用户目录。
主要在settings.xml的localRepository
远程仓库:如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。
中央仓库 :在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包含了世界上大部分流行的开源项目构件
maven规范的项目目录结构
maven的声明周期:
这三套生命周期分别是:
Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
DefaultLifecycle 构建的核心部分,编译,测试,打包,部署等等。
Site Lifecycle 生成项目报告,站点,发布站点。
本地配置和全局配置
maven
仓库地址、私服等配置信息需要在 setting.xml 文件中配置,分为全局配置和用户配置。
conf/setting.xml 文件,此 setting.xml 文件用于 maven 的所有 project 项目,它作为 maven 的全局配置。
${user.dir} /.m2/settings.xml目录中,这里的为用户配置
maven 会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。
setting.xml 主要由两部分:
Local repository:默认的本地数据仓库
mirror:镜像源
项目对象模型 (Project Object Model)
一个 maven 工程都有一个 pom.xml 文件
pom.xml:含有三部门,项目依赖(dependency)、项目信息、 插件目标(build)等。
IDEA中的配置: