Maven 是一个项目管理工具,可以对 Java,C#,Ruby,Scala 和其他语言编写的项目进行构建、依赖管理。
Maven 仓库
Maven 仓库是项目中依赖的第三方库所存放的位置。Maven 仓库有三种类型:
- 本地(local):默认在
u
s
e
r
.
h
o
m
e
/
.
m
2
/
r
e
p
o
s
i
t
o
r
y
目
录
,
可
以
在
{user.home}/.m2/repository目录,可以在
user.home/.m2/repository目录,可以在{user.home}/.m2/settings.xml
文件中修改:${user.home}/.m2/repository - 中央(central):由 Maven 社区提供的仓库,其中包含了大量常用的库。不需要配置。
- 远程(remote):在${user.home}/.m2/settings.xml 文件中添加远程仓库。 运行 Maven
的时候,Maven
所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从中央仓库下载,然后尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。
Maven install
将本地maven项目打包成jar/war包,放入本地仓库。
Maven插件
Maven 实际上是一个依赖插件执行的框架,Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的。
Maven 插件通常被用来:
创建 jar 文件
创建 war 文件
编译代码文件
代码单元测试
创建工程文档
创建工程报告
快照(SNAPSHOT)
快照是一种特殊的版本,指定了某个当前的开发进度的副本。例如:发布者每次发布更新代码的快照到仓库中。使用者pom.xml配置依赖某个版本的快照,Maven 每次构建都会在远程仓库中检查并获取最新的快照。
依赖管理
Maven支持依赖管理。每个项目的 pom 中只要定义好直接的依赖关系,其他间接依赖的事情 Maven 会帮我们搞定。
依赖继承
子项目可以继承父项目的依赖。首先进行如下配置:
1、父项目元素中增加子项目名称。
2、把父项目已POM的形式打包到maven库。
3、子项目中以标签继承父项目。
然后:
如果是父项目中标签下的直接依赖,在子项目中什么都不用写,就会自动继承。
如果是父项目中标签下的依赖,可以有选择性的继承,这个时候要自己在子项目添加依赖,需要有和,但是版本就可以省略,直接继承父项目。
Maven Eclipse
Eclipse 提供了一个很好的插件 m2eclipse ,该插件能将 Maven 和 Eclipse 集成在一起。在最新的 Eclipse 中自带了 Maven。
导入Maven项目: File > Import > Maven Projects 。点击 Next ,点击 Finish 。
编译Maven项目并打包到本地仓库:右键项目 > Run As > Maven install。
构建 Maven 项目:右键项目 > Run As > Maven build > 输入构建命令package。