maven中有一些较核心的概念:
1.maven插件和目标
mvn archetype:create
这样一个命令中,archetype是插件标识,create是目标标识。一个maven插件包含了一个单个或者多个目标的集合。一个目标是一个明确的任务。
2.Maven生命周期
mvn package
在这样的一个命令中,并没有指定一个插件目标,而是指定了一个Maven生命周期阶段。一个阶段是在maven的‘构建生命周期’的一个步骤。
如上图所示就是一个maven默认的生命周期,插件目标附着在生命周期阶段上,随着maven生命周期地移动而执行。
maven的生命周期允许每个项目遵循一组定义明确的标准,这样对于每个项目的构建方式都是相同的。
3.Maven坐标(coordinates)
POM为项目命名提供了一组唯一标示符(坐标),项目坐标由四部分组成:groupId, artifactId, version, packaging。
一般书写一个坐标的格式为:groupId:artifactId:packaging:version.
groupId:组织的名称
artifactId:在groupId下表示一个项目的唯一标识符。
version:项目版本号,正在开发的项目的版本号加上一个snapshot标识。
packaging:默认为jar,也可以为war,描述项目打包后的输出。
4.Maven仓库(repositories)
在maven项目第一次构建时,会从远程仓库上下载构件和插件,一旦这些构件和插件下载下来后,就会存储在本地仓库中,不再需要再次下载。maven再次构建时会先去本地仓库中寻找,再去远程中找。
maven仓库是通过结构来定义的,在Linux上仓库的默认形式为~/.m2/repository/<groupId>/<artifactId>/<version>/<artifactId>-<version>.<packaging>
可以通过mvn install命令的方式将自己构建的项目安装到本地仓库中,供其他项目使用。
5.依赖管理
pom.xml的文件中会使用dependencies字段来专门定义依赖。
maven的依赖管理是支持传递的,只需要在文件中定义自己的父依赖,而无需定义父依赖的依赖。
6.项目站点和文档生成
mvn site