You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot Maven Plugin的repackage goal绑定生命周期及配置疑问

问题解答

  1. 首先明确:repackage goal 默认已经绑定到Maven生命周期的package阶段,这个是Spring Boot Maven插件本身预先定义好的,不需要额外指定绑定的phase。
  2. 你贴的第一份带<executions>的配置作用是:让Maven在执行到package阶段时,自动触发repackage goal运行。
  3. 两种配置的核心区别:
    • 仅引入插件、不加<executions>的配置:Maven不会在默认生命周期流程中自动执行repackage,你每次需要打可执行Spring Boot包时,都要在mvn package之后手动执行mvn spring-boot:repackage命令,才能把普通Jar包转为可执行的胖Jar。
    • 加了<executions>的配置:你只要执行mvn package命令,Maven完成原生打包逻辑后会自动调用repackage生成可执行包,不需要额外执行命令,在CI/CD流水线、日常本地打包场景下都更便捷。
  4. 补充说明:如果你项目的父POM继承了官方的spring-boot-starter-parent,父POM已经默认配置好了repackage的自动执行规则,你哪怕只写插件坐标不加<executions>,也能实现mvn package自动打可执行包的效果,很多场景下两种写法表现一致就是这个原因。
  5. 手动执行spring-boot:repackage的方式本身没有问题,如果你很少需要打可执行包,只是偶尔有需求,用这种方式完全可行,显式配置<executions>只是为了实现自动化执行,适配高频打包的场景。

内容的提问来源于stack exchange,提问作者AntonBoarf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:27:03