
maven 不支持通过单条命令自动执行插件中定义的所有 `
在 Maven 的构建模型中,
✅ 正确做法是显式列出所有目标 execution:
mvn exec:java@first-execution exec:java@second-execution
⚠️ 注意事项:
- 每个 exec:java@xxx 实际上是独立的 CLI 调用,Maven 会按顺序执行——前一个完成后才启动下一个;若需并发运行(如同时启动两个服务),需借助外部工具(如 & + wait、GNU Parallel)或改用 maven-antrun-plugin/自定义 Mojo。
- 不要混淆
与 goal>:即使多个 execution 共享同一 goal(如 exec:java),Maven 也不会自动聚合它们;goal 是插件能力,execution 是具体实例化配置。 - 若频繁需要多服务联调,更推荐将启动逻辑提取到脚本(如 start-servers.sh)或使用 spring-boot-maven-plugin 的 run 目标配合 profiles 分离配置。
? 总结:Maven 的设计哲学强调明确性与可重现性——自动执行“所有 execution”会模糊构建意图、降低可维护性,因此社区已明确拒绝该特性(参见 Maven PR #357)。坚持显式声明,既是规范,也是最佳实践。










