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

能否将Quarkus扩展的运行时与部署JAR合并为单个工件?

Quarkus扩展runtime与deployment模块合并打包的官方支持情况

核心结论:不建议将Quarkus扩展的runtime和deployment模块合并为单个JAR,且这种方式不受官方支持。

原因如下:

  • Quarkus的扩展架构天生依赖runtime和deployment模块的分离:
    • runtime模块包含应用运行时所需的核心逻辑、API和依赖,是最终应用包的一部分;
    • deployment模块仅在构建阶段(如代码增强、生成、配置处理)生效,属于构建时依赖,不应被带入运行时。
  • 官方通过特定的命名规则(如xxx-deployment对应xxx-runtime)和Maven工件分类来识别扩展的构建逻辑,强行合并会破坏Quarkus的扩展加载机制,引发构建失败、运行时依赖冲突等问题。

关于你尝试的打包插件:

  • maven-assembly-plugin和maven-shade-plugin无法成功合并的本质是它们不符合Quarkus扩展的架构设计,就算强行合并出单个JAR,也无法被Quarkus正确识别为合法扩展。
  • 你用flatten-maven-plugin处理父POM的方式是可行的,官方认可这种消除父POM传递依赖的方案。

替代方案:

  • 若觉得分发多个工件麻烦,可将扩展发布到Maven仓库。用户使用时只需引入runtime模块的依赖,Quarkus会自动通过依赖管理机制关联对应的deployment模块,无需用户手动添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 15:22:26