Netbeans RCP模块选项。Felix、equinox或标准Netbenas模块?

Netbeans RCP模块选项。Felix、equinox或标准Netbenas模块?,netbeans,netbeans-6.9,rcp,equinox,apache-felix,Netbeans,Netbeans 6.9,Rcp,Equinox,Apache Felix,为Netbeans 7.0.1 RCP开发模块有几个选项。我还没有找到他们之间的明确对比。 因此,我想知道哪种方法最容易: 发展 按用户安装(例如,用户可以使用模块选择合适的jar (从存储库中) 这使得编写更少的不可重用代码成为可能(例如,当您希望以后对使用过的类进行web应用时) 哪个最流行?最简单的方法是使用传统的Netbeans方法—构建nbm。这是经过良好测试的良好特性。构建模块后,您将获得“nbm”文件,其中包含所有需要的信息(其他JAR、设置等) 您可以使用Netbeans的“

为Netbeans 7.0.1 RCP开发模块有几个选项。我还没有找到他们之间的明确对比。 因此,我想知道哪种方法最容易:

  • 发展

  • 按用户安装(例如,用户可以使用模块选择合适的jar
    (从存储库中)

这使得编写更少的不可重用代码成为可能(例如,当您希望以后对使用过的类进行web应用时)


哪个最流行?

最简单的方法是使用传统的Netbeans方法—构建nbm。这是经过良好测试的良好特性。构建模块后,您将获得“nbm”文件,其中包含所有需要的信息(其他JAR、设置等)

您可以使用Netbeans的“模块更新”功能

另一种方法是将模块构建为osgi捆绑包。 此功能是在6.7版本中引入的,到目前为止,它还存在一些问题

首先,正常理解中的bundle是一个jar。如果您的bundle依赖于其他jar(例如apachecommons:beanutils),则需要将此jar打包到bundle jar中(使用maven bundle插件),或者将“beanutils”作为独立的bundle安装。第一个解决方案不是最好的,因为如果将来另一个捆绑包想要使用“beanutils”,您将需要将新捆绑包与旧捆绑包链接,即使它们不需要这个。这会导致模块之间的高内聚性。或者您可以将“beanutils”打包到新包中,但这可能会导致osgi框架中的类加载问题

所以,如果需要安装netbeans模块,只需安装一个nbm文件即可

如果需要安装捆绑包,则需要在捆绑包旁边单独安装所有依赖的捆绑包

另一件事是,现在您无法配置osgi框架,它嵌入在netbeans中,加载捆绑包的过程与加载标准netbeans模块有一些不同,这可能会导致一些“奇怪”的问题

我相信netbeans的人会解决这个问题,他们正在朝着正确的方向前进,但现在,如果你不需要捆绑包,就不要使用它