【问题标题】:How to build fat jar for EE CDI?如何为 EE CDI 构建 fat jar?
【发布时间】:2016-05-09 05:13:18
【问题描述】:

那些日子里,每个人都在谈论使用 fat-jars 的微服务和无容器部署,而 Dropwizard 或 Springboot 等框架为您提供了支持。由于所有 EE 组件都可作为单独的实现使用,因此应该可以组装您自己的所需组件(即 Weld、Jersey、Jetty)的 jar。

在使用基于 Java EE 的 CDI 时,有一个 BDA(Bean Deplyoment Archive)的概念,它定义了一组捆绑在 jar 中的启用 CDI 的 Bean,以及包含一些BDA 的附加信息,例如拦截器。

如何在不丢失beans.xml 的信息的情况下将这些 BDA 组合到一个 uber-jar 中? maven jar-with-dependencies 只是将所有文件复制到一个文件中,覆盖前一个文件(或保留第一个文件,不确切)。

fat-jar 的概念与 EE CDI 完全兼容吗?当全部合并到一个 BDA 中时,一些 CDI 语义是否会丢失,即 Alternatives 的范围。

【问题讨论】:

  • 也许 wildfly swarm 会为你做这件事 - 只是一个想法希望它可能会有所帮助,因为我自己没有使用它。

标签: java jakarta-ee jar cdi


【解决方案1】:

这是来自焊接人员http://weld.cdi-spec.org/documentation/#5的提示

基本上,请确保您汇总了您的扩展程序并包含一个有效的beans.xml

【讨论】:

  • 合并多个 BDA 怎么样?
  • @GeraldMücke 不确定你的意思..也许澄清一下。这里的重点是您只有一个存档,而不是很多。
  • 我有一个 maven 项目,其中包含多个模块,这些模块包含作为 BDA 的 bean(以及带有拦截器、构造型等的 beans.xml)。我有一个“装配”模块,它应该创建一个包含 BDA 和“基础设施”(焊接等)的胖 jar
猜你喜欢
  • 2015-04-12
  • 2021-02-27
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 2013-02-18
  • 1970-01-01
相关资源
最近更新 更多