发展与Maven的OSGi应用程序时,有两种主要方法:POM-第一和清单的第一位。
我在寻找一个答案是在显示每个方法的利弊表的形式。
更具体地讲,我也想知道它是如何涉及:
- 工具集的成熟度
- 供应商的独立性
- 发展缓解(包括找人,谁可以做模具的发展)
- 兼容性
- 避免ClassNotFound的
- 避免了手工工作
发展与Maven的OSGi应用程序时,有两种主要方法:POM-第一和清单的第一位。
我在寻找一个答案是在显示每个方法的利弊表的形式。
更具体地讲,我也想知道它是如何涉及:
目前,这是我能想出
POM-首先优点(使用行家束-插件)
POM-首先缺点
ClassNotFoundException
更可能在运行时发生。 然而,这可以通过使用PAX-考试(虽然它是非常复杂的设置)来缓解。 instructions
配置元素的设置是否正确。 Manifest优先优点(使用第谷-行家-插件)
ClassNotFoundException
JUnit的测试,而不是在运行时出现。 Manifest优先的缺点
如果有人问我对为已经使用Maven,想先移动到OSGi的那么这将是POM企业推荐
如果我问的人谁是做Eclipse插件开发的建议,那么它是明显的第一-第谷与
我想你应该使用情况进行选择。 对于服务器端OSGi项目我赞成POM第一个样式。 它很好地匹配Maven的构建和少得多的错误比舱单容易第一。 事实上BND其背后是行家捆绑插件将获取多数情况下,正确的清单没有任何额外的配置。 诀窍是使用一些命名规则。 例如,如果你的名字内包装IMPL或内部的将不会被导出。 使用这种风格,你不能使用Eclipse插件观点(至少不,我不喜欢bndtools),但我并没有错过这个观点。 我在这里我们使用这种风格的Apache Karaf,CXF和骆驼项目的开发商和它的伟大工程。 特别是对CXF和骆驼它是伟大的,我们可以支持具有相同的构建和工具OSGi和非OSGi的部署。
对于Eclipse RCP应用程序清单首先是去当你需要的插件观点和Eclipse IDE工具的方式。 如果你想结合起来,与行家则第谷可能是要走的路。
清单第一不锁你到Eclipse(虽然我会感到惊讶,如果超过极少数人会用别的)。 清单是计数,并且需要被添加到一个罐子,你无论怎么做,该文件。
在另一方面,POM第一个完全锁住你的Maven,你就失去了优势,一个OSGi包是一个普通的罐子,你可以做任何你想要的方式。
我都试过,我真的喜欢清单第一。 清单文件是一个非常重要的文件,我宁愿精心创建的文件在起草产生该文件的文件。 如果一些奇怪的情况,(它会在某个点)的清单文件中首先要检查的,它只是更容易,如果这是你自己的文件。 此外,你必须熟悉也无妨。
所以,如果Maven是您的阿拉法,POM首先将最适合你,但你仍然需要有深入的清单文件的理解。