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