当从命令行 运行 时,weld-se 无法在类路径上的不同 jar 中找到 bean

weld-se unable to find bean in different jar on classpath when running from command line

我有一个使用 weld-se 的简单独立应用程序,但我无法从我的类路径上的所有 bean 存档中检测到 beans

基本上,我在 运行:

的目录中有一堆 jar 文件
java -classpath * a.b.c.Generator

这些 jar 文件中的两个是 bean 档案,并且很好地发现了 weld.initialize() 发生的 jar 中包含的 bean。

然而,来自其他 jar 文件的那些将被完全忽略。这对我来说似乎很奇怪,尽管我不怀疑这是否真的是它的意图。如果是这样,会有什么不同的解决方案?

就我而言,当 运行 通过上述命令行时,我无法让 Weld 在我的类路径上的其他 jar 中发现 bean。

注册的 beanmanager 只发现带有初始化 Weld 的 jar 文件的 bean。日志记录表明了这一点,并指出 "Bean manager for "/jar/C:/....",因此仅针对一个 jar 文件。

为了解决这个问题,我合并了所有我需要从中发现 bean 的 jar 文件(带有一个空 META-INF/beans.xml),然后 运行 我的应用程序就像以上。