本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。
一、maven pom 文件相关知识
1. pom是什么
- pom代表了工程对象模型。它是使用maven工作的基本组建,是一个xml文件。它被放在工程根目录下,文件被命名为pom.xml。
- pom包含了关于工程和各种配置的细节信息,Maven使用这些信息构建工程。
- pom也包含了目标和插件。当执行一个任务或者目标时,maven会查找当时目录下的POM,从其中读取所需要的配置信息,然后执行目标。
2. pom的一些配置
- project dependencies
- plugns
- goals
- build profiles
- project version
- developers
- mailing list
3. pom实例
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname.project-group</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
</project>
*工程的唯一标识由工程组(groupId),名称(artifactId),版本(version)构成
4. pom文件注意点
- pom文件需要project元素和三个必须字段 groupId,artifactId,version
- 在仓库钟工程的标识为 groupId:artifactId:version
- POM.xml的根元素是project
节点 | 描述 |
---|---|
groupId | 工程组的标识。它在一个组织或者项目中通常是唯一的 |
artifactId | 工程的标识。它通常是工程的名称。 |
version | 工程版本号。用来区分版本 |
5. Super POM
- 所有的POM都继承自一个父POM。父POM也称作Super POM。包含一些可以被继承的默认设置。
- maven使用effective pom(super POM加上工程自身的配置)来执行相关目标。
- 查看super POM 使用命令: mvn help:effective-pom
二、maven构建生命周期
阶段 | 处理 | 描述 |
---|---|---|
prepare-resource | 资源拷贝 | 自定义需要拷贝的资源 |
compile | 编译 | 源代码编译 |
package | 打包 | 根据pom.xml中描述的打包配置创建JAR/WAR包 |
install | 安装 | 在本地/远程仓库中安装工程包 |
maven标准生命周期 clean,default(or build),site |
三、maven仓库
本地仓库 中央仓库 远程仓库
1. 本地仓库
本地机器上的一个文件夹。安装时默认指定%USER_HOME%目录下
2.中央仓库
地址:search.maven.org/ 中央仓库即maven社区提供的仓库,包含大量常用的库。
3. 远程仓库
开发者自定义的仓库。存放开发者自定义的代码。
maven依赖搜索顺序:1.本地仓库 2.中央仓库 3.配置的远程仓库
四、maven插件
插件执行:
mvn [plugin-name]:[goal-name]
例如: mvn compiler:compile
1. 插件类型
maven提供了两种类型的插件(在pom.xml的元素中配置):
- (1) Build plugins 在构建时执行
- (2)Reporting plugins 在网络生成过程中执行
2. 常用插件
插件 | 描述 |
---|---|
clean | 构建之后清理目标文件。删除目标目录 |
compiler | 编译java源文件 |
surefile | 运行Junit单元测试,创建测试报告 |
jar | 构建JAR文件 |
war | 构建WAR文件 |
javadoc | 生成javadoc文档 |
antrun | 从构建过程的任意一个阶段中运行一个ant任务集合 |