Maven踩坑——父模块生命周期的操作会被子模块继承

Maven 生命周期与阶段总结

Maven 共有三个主要生命周期,每个生命周期由多个阶段组成。以下是每个生命周期和其阶段的详细描述。

生命周期 阶段 描述
默认生命周期 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 编译测试代码。
test 运行测试代码。
prepare-package 执行打包前的准备工作。
package 将编译后的代码打包为可分发格式(如 JAR、WAR 文件)。
pre-integration-test 集成测试前执行的准备工作。
integration-test 处理并执行集成测试。
post-integration-test 集成测试完成后执行的操作。
verify 运行所有检查,确保项目符合质量标准。
install 将打包的工件安装到本地仓库中。
deploy 将项目部署到远程仓库中。
清理生命周期 pre-clean 清理前的准备工作。
clean 删除之前生成的构建文件(如目标目录中的文件)。
post-clean 清理完成后的操作。
站点生命周期 pre-site 站点生成前的准备工作。
site 生成项目的站点文档。
post-site 站点生成后的操作。
site-deploy 将生成的站点发布到服务器。

Maven 生命周期与父子模块插件执行控制

Maven 依赖于生命周期来执行构建任务,父模块和子模块会共享相同的生命周期,但通过适当的配置,可以避免子模块执行父模块的插件操作。

解决方案:通过插件的 skip 参数控制子模块跳过执行

使用插件的 skip 参数,可以让子模块不执行特定插件。例如,对于 maven-antrun-pluginmaven-resources-plugin,你可以在子模块的 pom.xml 中显式设置 skiptrue

通过插件 skip 参数避免子模块执行

以下是一个完整的配置示例:

父模块 pom.xml
<project>
    <modelVersion>4.0.0</modelVersion>

    <group
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

pumpkin84514

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

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

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

打赏作者

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

抵扣说明:

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

余额充值