我是否需要为每个 jar 创建单独的 OSGi 包

Do I need to create seperate OSGi bundles for each jar

我想为 log4j2 创建一个 OSGi 包。我需要与 log4j2 一起使用一些额外的 jar,例如 log4j2-jcl、log4j2-jul、log4j2-web 等。我想澄清下面列出的一些关于此的混淆。 但是,这不是 log4j2 特有的,我将其作为一般程序询问。

  1. 我是否需要为每个 jar 创建单独的 OSGi 包,或者我可以为所有 jar 使用一个包吗? (最佳做法是什么)
  2. 我如何知道这些 jar 是否已经可用 OSGi 包? (这样我就不需要重新创建包,可以使用现有的)

我对 OSGi 很陌生,所以任何人都可以澄清这些不需要特定于 log4j2 的东西。

谢谢!

  1. Do I need to create separate OSGi bundles for each jar or can I use one bundle for all the jars? (What is the best practice)

如果可能,我建议为每个 JAR 创建一个包。这为您提供了最大的灵活性,并确保每个 JAR 都经过适当设计。

  1. How can I know whether OSGi bundles are already available for these jars ? (So that I don't need to re create bundles, can use existing ones)

看看清单文件。

如果它包含 OSGi 元数据 -> 它是一个 OSGi 包。

如果它不包含 OSGi 元数据 -> 它不是 OSGi 包。

我认为 Log4J JAR 已经提供了 OSGi 元数据(-> 它们已经是捆绑包),但我没有仔细检查。

只是一个建议。
在你做任何捆绑之前,检查它是否存在。 https://jpm4j.org/#!/search?q=log4j2

另外,我推荐slf4j