0

我正在维护一个依赖于 OSGi 的 Web 应用程序,并且 Maven 拉入一个名为的 jar,该 jarorg.osgi-foundation-1.0.0.jar似乎包含与 JDK 核心运行时相同的类,例如:

java.util.\*;
java.io.\*;

等等等等。

这似乎很奇怪,我不得不问为什么这是必要的。此外,我的 Web 应用程序无法在 JBoss 6 上部署,因为这些是第三方库的“非法包名称”。

目的是org.osgi-foundation-1.0.0.jar什么?有必要吗?

4

1 回答 1

1

org.osgi.foundation是一个包含 Foundation 执行环境中所有类的包(参见 OSGi 纲要规范的第 999 节)。

简而言之,执行环境是一组应该从框架中可用的类。它们被分组在配置文件中,例如JavaMEOSGi/Minimum。Bundles 可以在它们的清单中表达它们对给定执行环境的使用,并确保它们只会在例如提供 AWT 的平台上启动。

您找到的org.osgi.foundation包代表这些环境之一。它只包含存根类,因此只能在编译期间使用。

因此,如果 Maven 将包作为编译依赖项引入,那很好,但它永远不应该与您的应用程序一起部署。

于 2012-12-11T12:35:53.103 回答