Maven基础知识

Maven概述
Maven是一个项目管理和整合的工具,Maven为开发者提供了一套构建生命周期框架。Maven主要帮助开发者完成以下工作:构建、文档生成、报告、依赖、SCMS、发布、分发、邮件列表。

Maven工程源码文件、资源文件的默认配置

配置项默认值
source code${basedir}/src/main/java
resources${basedir}/src/main/resources
Tests${basedir}/src/test
Complied byte code${basedir}/target
${basedir}/target${basedir}/target/classes

POM
pom(program object model)代表工程对象模型,它是使用Maven工作时的基本组件,是一个xml文件,被放在工程的根目录下:pom.xml,包含了关于工程和各种配置细节的信息,Maven使用这些信息构建工程;也包含了目标和插件。

每个工程只有一个pom文件:

  • 所有的POM文件需要project元素和三个必须的字段:groupId、artifactId、version
  • 在仓库中的工程标识为:groupId:artifactId:version
  • pom.xml的根元素是project

Maven– 构建生命周期
构建生命周期是一组阶段的序列,每个阶段定义了目标被执行的顺序。这里的阶段是生命周期的一部分。

一个典型的Maven构建生命周期是由以下阶段的序列组成的:

阶段处理描述
prepare-resources资源拷贝可以自定义需要拷贝的资源
compile编译完成源代码编译
package打包根据pom.xml中描述的打包配置创建jar/war包
install安装在本地/远程仓库中安装工程包

Maven有三个典型的生命周期:

  • clean:在进行真正的构建之前进行一些清理工作。
名称描述
pre-clean执行一些需要在clean之前完成的工作
clean移除所有上一次构建生成的文件
post-clean执行一些需要在clean之后立刻完成的工作

- default(or build):这是 Maven 的主要生命周期,被用于构建应用.

名称描述
validate检查工程配置是否正确,完成构建过程的所有必要信息是否能够获取到
initialize初始化构建状态,例如设置属性
generate-sources生成编译阶段需要包含的任何源码文件
process-sources处理源代码,例如,过滤任何值(filter any value)
generate-resources生成工程包中需要包含的资源文件
process-resources拷贝和处理资源文件到目的目录中,为打包阶段做准备
compile编译工程源码
process-classes处理编译生成的文件,例如 Java Class 字节码的加强和优化
generate-test-sources生成编译阶段需要包含的任何测试源代码
process-test-sources处理测试源代码,例如,过滤任何值(filter any values)
test-compile编译测试源代码到测试目的目录
process-test-classes处理测试代码文件编译后生成的文件
test使用适当的单元测试框架(例如JUnit)运行测试
prepare-package在真正打包之前,为准备打包执行任何必要的操作
package获取编译后的代码,并按照可发布的格式进行打包,例如 JAR、WAR 或者 EAR 文件
pre-integration-test在集成测试执行之前,执行所需的操作。例如,设置所需的环境变量
integration-test处理和部署必须的工程包到集成测试能够运行的环境中
post-integration-test在集成测试被执行后执行必要的操作。例如,清理环境
verify运行检查操作来验证工程包是有效的,并满足质量要求
install安装工程包到本地仓库中,该仓库可以作为本地其他工程的依赖
deploy拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程
  • site:Maven Site 插件一般用来创建新的报告文档、部署站点等。
名称描述
pre-site执行一些需要在生成站点文档之前完成的工作
site生成项目的站点文档
post-site执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy将生成的站点文档部署到特定的服务器上

构建配置文件
构建配置文件是一组配置的集合,用来设置或者覆盖Maven构建的默认配置。Profile 在 pom.xml 中使用 activeProfiles / profiles 元素指定,并且可以用很多方式触发。Profile 在构建时修改 POM,并且为变量设置不同的目标环境(例如,在开发、测试和产品环境中的数据库服务器路径)。

Profile 类型

类型定义位置
Per Project定义在工程 POM 文件 pom.xml 中
Per User定义在 Maven 设置 xml 文件中 (%USER_HOME%/.m2/settings.xml)
Global定义在 Maven 全局配置 xml 文件中 (%M2_HOME%/conf/settings.xml)

Maven仓库
Maven仓库是一个位置,可以存储所有的工程jar文件、library jar文件、插件或任何其他的工程指定的文件。

Maven有三种类型:本地(local)、中央(central)、远程(remote)


Maven插件
Maven实际上是一个依赖于插件执行的框架,每个任务实际上是有插件完成的,Maven插件通常被用来:

  • 创建jar文件
  • 创建war文件
  • 编译代码文件
  • 代码单元测试
  • 创建工程文档
  • 创建工程报告

Maven插件类型:

类型描述
Build plugins在构建时执行,并在 pom.xml 的 元素中配置
Reporting plugins在网站生成过程中执行,并在 pom.xml 的 元素中配置

Maven常用的插件列表

插件描述
clean构建之后清理目标文件;删除目标目录
compiler编译java源文件
surefile运行Junit单元测试,创建测试报告
jar从当前工程中创建jar文件
war从当前工程中创建war文件
javadoc为工程生成javadoc
antrun从创建过程的任意一个阶段中运行一个ant任务的集合

创建工程
这里写图片描述
这里写图片描述
这里写图片描述


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值