【发布时间】:2012-04-17 09:36:51
【问题描述】:
我有一个大型 Java EE 应用程序和一个简单的 OSGi Bundle 应用程序。我需要在我的包中使用来自这个 Java EE 应用程序的 Java 类。我该怎么做?
我尝试将 Java EE 应用程序作为“必需项目”包含在我的 Bundle 的 Java 构建路径中,但它不适用于我。
【问题讨论】:
我有一个大型 Java EE 应用程序和一个简单的 OSGi Bundle 应用程序。我需要在我的包中使用来自这个 Java EE 应用程序的 Java 类。我该怎么做?
我尝试将 Java EE 应用程序作为“必需项目”包含在我的 Bundle 的 Java 构建路径中,但它不适用于我。
【问题讨论】:
假设您只需要将 Java EE 类作为库,您可以将它们打包为包中的 jar 并使用 Bundle-ClassPath 指令。
【讨论】:
查看 bndtools(或 maven bundle 插件)。使用 bnd 包含来自其他项目的类是微不足道的。
因此,在 bndtools 中,您只需在构建路径中添加 Java EE 应用程序,然后将 Private-Package 指令与您希望包含在包中的包名一起使用,允许使用通配符。
您还可以创建一个包含所有共享类的包的项目。然后将此捆绑包添加到 Java EE 应用程序中。
【讨论】: