Maven基础入门

Maven是一款基于项目对象模型(POM)的项目管理工具,主要用于Java项目的构建和依赖管理。除了Java,Maven还可用于C#、Ruby、Scala等多种语言项目的构建。本文介绍了Maven的默认插件及其功能,并详细解释了Maven生命周期的不同阶段。

Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。 Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。

# Maven 默认插件

已知 Maven 使用 plugin 来执行实际操作的,在默认情况下,Maven 会绑定以下几个插件来完成基本操作。

pluginfunctionlife cycle phase
maven-clean-plugin清理上一次执行创建的目标文件clean
maven-resources-plugin处理源资源文件和测试资源文件resources,testResources
maven-compiler-plugin编译源文件和测试源文件compile,testCompile
maven-surefire-plugin执行测试文件test
maven-jar-plugin创建 jarjar
maven-install-plugin安装 jar,将创建生成的 jar 拷贝到 .m2/repository 下面install
maven-deploy-plugin发布 jardeploy

如果针对各个 plugin 有特殊配置的话,需要显示指定 plugin 和 属性配置。

# Maven 生命周期

官网地址: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

下面列出了default,clean和site生命周期的所有构建阶段,它们按照指定的时间点之前的顺序执行。

mvn test -X 查看debug日志

[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
1 2 3

# default生命周期

阶段描述
validate验证项目是否正确并且所有必要的信息都可用。
initialize初始化构建状态,例如设置属性或创建目录。
generate-sources生成包含在编译中的任何源代码。
process-sources处理源代码,例如过滤任何值。
generate-resources生成包含在包中的资源。
process-resources将资源复制并处理到目标目录中,准备打包。
compile编译项目的源代码。
process-classes对编译生成的文件进行后处理,例如对 Java 类进行字节码增强。
generate-test-sources生成任何测试源代码以包含在编译中。
process-test-sources处理测试源代码,例如过滤任何值。
generate-test-resources创建用于测试的资源。
process-test-resources将资源复制并处理到测试目标目录中。
test-compile将测试源代码编译到测试目标目录中
process-test-classes对测试编译生成的文件进行后处理,例如对 Java 类进行字节码增强。
test使用合适的单元测试框架运行测试。这些测试不应该要求打包或部署代码。
prepare-package在实际包装之前执行准备包装所需的任何操作。这通常会导致包的解压缩、处理版本。
package获取编译后的代码并将其打包为其可分发格式,例如 JAR。
pre-integration-test在执行集成测试之前执行所需的操作。这可能涉及诸如设置所需环境之类的事情。
integration-test如有必要,处理并部署包到可以运行集成测试的环境中。
post-integration-test执行集成测试后执行所需的操作。这可能包括清理环境。
verify运行任何检查以验证包裹是否有效并符合质量标准。
install将包安装到本地存储库中,用作本地其他项目的依赖项。
deploy在集成或发布环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享。

# site生命周期

阶段描述
pre-site在实际项目现场生成之前执行所需的流程
site生成项目的站点文档
post-site执行完成站点生成和准备站点部署所需的流程
site-deploy将生成的站点文档部署到指定的 Web 服务器

# clean生命周期

阶段描述
pre-clean在实际项目清理之前执行所需的流程
clean删除先前构建生成的所有文件
post-clean执行完成项目清理所需的流程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西魏陶渊明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值