新闻详情

新闻详情

首页 / 资讯中心 / 详情

【Maven系列2】生命周期与插件

发布时间:2026/9/25 18:27:55来源:尧图网络
【Maven系列2】生命周期与插件
讲解Maven的生命周期和插件以及常用的命令。Maven生命周期三套生命周期Maven 的生命周期并不是一个整体Maven 拥有三套相互独立的生命周期clean项目清理的处理default(或 build)项目部署的处理site项目站点文档创建的处理三套生命周期本身是相互独立的用户可以仅调用 clean 生命周期的某个阶段或者仅仅调用 default 生命周期的某个阶段而不会对其他生命周期产生任何影响。例如当用户调用 clean 生命周期的 clean 阶段的时候不会触发 default 生命周期的任何阶段反之亦然。注所以一般的打包命令都是 clean package xxxxx先 clean 再 package就是因为 clean 和 package 是在两个不同的生命周期里面。clean生命周期当我们执行 mvn post-clean 命令时Maven 调用 clean 生命周期它包含以下阶段pre-clean执行一些需要在clean之前完成的工作clean移除所有上一次构建生成的文件post-clean执行一些需要在clean之后立刻完成的工作当调用 pre-clean 时只有 pre-clean 阶段得以执行当调用 clean 的时候pre-clean和clean阶段会得以顺序执行以此类推。这是因为每个生命周期包含一些阶段(phase)这些阶段是有顺序的并且后面的阶段依赖于前面的阶段。default生命周期重点步骤如下表这个需要掌握default的23个阶段仅了解即可在开发环境中使用下面的命令去构建、安装工程到本地仓库mvn install这个命令在执行 install 阶段前按顺序执行了 default 生命周期的阶段 validatecompilepackage等等我们只需要调用最后一个阶段如这里是 install。site生命周期pre-site 执行一些在生成项目站点之前需要完成的工作。site 生成项目站点文档。post-site 执行一些在生成项目站点之后需要完成的工作。site-deploy 将生成的项目站点发布到服务器上。这个没用过后面如果需要用的话我再试试。Maven插件插件介绍Maven 三套生命周期定义各个阶段不做任何实际工作实际工作都是由插件来完成的每个生命周期阶段都是由插件的目标来完成。在 pom 文件中声明如下打包源码文件插件build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-source-plugin/artifactId version2.1.1/version executions execution idattach-sources/id phaseverify/phase goals goaljar-no-fork/goal /goals /execution /executions /plugin /plugins /buildMaven 实际上是一个依赖插件执行的框架每个任务实际上是由插件完成。Maven 插件通常被用来创建 jar 文件创建 war 文件编译代码文件代码单元测试创建工程文档创建工程报告插件目标一个插件有可能有多个功能、每个功能就是一个目标。比如 maven-dependency-plugin 有十多个目标每个目标对应了一个功能。插件的目标为 dependency:analyze、dependency:tree和dependency:list。通用写法冒号前面是插件前缀冒号后面是插件的目标。比如 compiler:compile。插件绑定内置绑定为实现快速构建Maven 有一套内置的插件绑定。三套生命周期的插件绑定具体如下其实是各个生命周期阶段与插件的目标的绑定。其中 default 生命周期的构建方式会其打包类型有关、打包类型在POM中 packaging 指定。一般有 jar、war 两种类型。下面是默认绑定插件与生命周期关系图自定义绑定自定义绑定允许我们自己掌控插件目标与生命周期的结合.以生成项目主代码的源码 jar 为例。使用到的插件和它的目标为maven-source-plugin:jar-no-fork。将其绑定到 default 生命周期阶段 verify 上可以任意指定三套生命周期的任意阶段。build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-source-plugin/artifactId version2.1.1/version executions execution idattach-sources/id phaseverify/phase !-- 指定作用在生命周期的哪个阶段 -- goals goaljar-no-fork/goal !-- 指定执行绑定插件的哪些目标 -- /goals /execution /executions /plugin /plugins /build举个栗子这个是项目中的示例plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-source-plugin/artifactId version3.0.1/version executions execution idattach-sources/id phasepackage/phase goals goaljar-no-fork/goal /goals /execution /executions /plugin plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-surefire-plugin/artifactId configuration !-- 不执行单元测试 -- skiptrue/skip /configuration /plugin plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId version3.8.0/version configuration encoding${project.build.sourceEncoding}/encoding source${java.version}/source target${java.version}/target testSource${java.version}/testSource testTarget${java.version}/testTarget /configuration /plugin /pluginsmaven-source-plugin是对Maven工程的源码进行打jar包的插件。但是我试过我将它去掉一样可以打包成功应该是用的Maven的默认插件。maven-surefire-plugin是maven里执行测试用例的插件示例我们是跳过了单元测试maven-compiler-plugin用于指定JDK的编译版本插件在pom.xml的属性配置文件中我们指定的是1.8。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

dsh-anchored-standard Wire级Think-Execute分离完全指南:如何在Adapter层用tool_choice:none实现工具“可见不可调用“ 2026/9/25 18:55:48

dsh-anchored-standard Wire级Think-Execute分离完全指南:如何在Adapter层用tool_choice:none实现工具“可见不可调用“

dsh-anchored-standard Wire级Think-Execute分离完全指南:如何在Adapter层用tool_choice:none实现工具"可见不可调用" 【免费下载链接】dsh-anchored-standard Two-phase DeepSeek Harness preset: Minimal-aligned bootstrap, then full Standard tools …

阅读更多 →
做了3个月AI旅行产品,最大挑战不是技术 2026/9/25 18:55:41

做了3个月AI旅行产品,最大挑战不是技术

项目第87天,我收到一封邮件,发件人是合规部门,标题里有暂停两个字。那时候我们的产品内测刚跑两周,技术坑全部填平,团队正在讨论上线排期。这封邮件一来,整条产品线原地停摆。这篇讲讲这三个月里发生的事&a…

阅读更多 →
腾讯 BrowserSkill 本地实测:CLI 装完不能用,真正的边界在 52800 端口 2026/9/25 18:55:28

腾讯 BrowserSkill 本地实测:CLI 装完不能用,真正的边界在 52800 端口

腾讯开源的 BrowserSkill 让 AI Agent 复用你已登录的真实浏览器,GitHub 上 5,718 star(9 月 20 日查的),适配 Cursor、Claude Code、Codex、OpenClaw、CodeBuddy、WorkBuddy、Hermes Agent、DeepSeek Harness 等一批主流 harness…

阅读更多 →
低预算也能用上的 TTS 语音合成工具盘点:2026 年平价配音方案怎么选? 2026/9/25 18:55:22

低预算也能用上的 TTS 语音合成工具盘点:2026 年平价配音方案怎么选?

摘要: 低预算做配音/语音合成,决策只看三件事——免费额度是否够用、商用授权是否清晰、音色自然度是否达标。本文用一张横向对比表,把 Edge TTS、逗哥配音、微软 Azure、百度/阿里/腾讯云语音合成等 10 款平价方案的参数摆清楚,并…

阅读更多 →
Atlas 300V 24G推理加速卡与YOLO部署实战全解析 2026/9/25 18:55:22

Atlas 300V 24G推理加速卡与YOLO部署实战全解析

最近总有人问我“Atlas 300V 24G是运算加速卡吗”,还有人问“网上那些用Atlas部署YOLO的教程,到底靠不靠谱”。作为一块用过挺久的推理卡,我觉得有必要把这块卡从硬件定位到软件部署的完整经验一次性讲清楚。Atlas 300V 24G是华为昇腾生态里一…

阅读更多 →
昇腾ATLAS 300V 24G部署YOLO实战:从推理卡选型到性能调优 2026/9/25 18:55:22

昇腾ATLAS 300V 24G部署YOLO实战:从推理卡选型到性能调优

2. 硬件认知:ATLAS 300V 24G到底是一张什么卡ATLAS 300V 24G是华为昇腾系列面向边缘推理场景推出的一款AI加速卡,核心芯片为昇腾310P系列处理器。很多人第一次拿到这张卡,会下意识地把它和GPU放在一起对比,比如“它是不是对标RTX …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉