为 Netbeans 7.0.1 RCP 开发模块有几个选项。我还没有找到任何明确的比较。所以我想知道其中哪一个最容易:
开发
由用户安装(例如,用户可以
从存储库中选择带有模块的适当 jar)
这使得编写不可重用的代码更少(例如,当您想稍后制作使用过的类的 Web 应用程序时)?
哪个最受欢迎?
为 Netbeans 7.0.1 RCP 开发模块有几个选项。我还没有找到任何明确的比较。所以我想知道其中哪一个最容易:
开发
由用户安装(例如,用户可以
从存储库中选择带有模块的适当 jar)
这使得编写不可重用的代码更少(例如,当您想稍后制作使用过的类的 Web 应用程序时)?
哪个最受欢迎?
最简单的方法是使用传统的 Netbeans 方式——构建 nbm 的。这是经过良好测试和良好的功能。构建模块后,您将获得“nbm”文件,其中包含所有需要的信息(其他 jars、设置等)
您可以使用 Netbeans 的“模块更新”功能。
另一种方法是将模块构建为 osgi 包。这个功能是在 6.7 版本中引入的,到现在它还存在一些问题。
首先,通常理解的bundle是一个jar。如果您的包依赖于其他 jar (fe apache-commons:beanutils),您需要将此 jar 打包到您的包 jar 中(使用 maven-bundle-plugin)或安装“beanutils”作为独立包。第一个解决方案不是最好的,因为如果将来另一个捆绑包想要使用“beanutils”,您将需要将新捆绑包与旧捆绑包链接,即使他们不需要这个。这导致模块之间的高内聚性。或者您可以将“beanutils”打包到您的新包中,但这可能会导致 osgi-framework 中的类加载问题。
因此,如果您需要安装 netbeans 模块,您只需安装一个 nbm 文件即可。
如果你需要安装 bundle,你需要在你的 bundle 旁边单独安装所有依赖的 bundle。
另一件事是,目前您无法配置 osgi-framework,它嵌入在 netbeans 中,并且加载包的过程与加载标准 netbeans 模块有一些差异,这可能会导致一些“奇怪”的问题。
我确信来自 netbeans 的人会解决这个问题并且他们正朝着正确的方向前进,但是现在,如果您不需要捆绑包,请不要使用它。