微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 使用Maven,OSGi和Bndtools

今天我被问到在我们当前的Osgi应用程序中使用Maven是个好主意.我们使用bndtools和它的伟大,因为它使开发尽可能容易. bndtools使用OBR来维护其他捆绑包和依赖关系分辨率,即使在应用程序运行.

由于Maven广泛传播并且非常受欢迎,所以大多数人都尝试在Osgi环境中使用它.对我来说,这是两种不同的方法. Osgi一个自己的依赖声明,MANIFEST.MF和Maven一个pom,您可以在其中声明它们.所以如果你使用这两个,你将声明依赖关系两次.当然,您可以使用Apache Osgi Maven插件来避免它,Maven负责创建MANIFEST.MF.但是Maven存储库并不关心bundle.所以可能会发生,你正在引用一个非捆绑jar.

当然,使用Maven有优势,但是将其与Osgi或特殊的bndtools结合起来真的是件好事吗?

有人可以提供优势或劣势!有人有实践经验使用两者吗?

解决方法

我认为,如果你做的任何事情都围绕着Maven,那么Apache Felix Maven插件(也就是基于BND)就是要走的路.

否则,如果你想使用Maven,但不太重要的角色,Eclipse Tycho有很大的意义. Tycho是一套Maven插件.

使用Tycho,您可以将目标平台从Eclipse提供给Maven,然后可以通过查看您的MANIFEST和目标平台来解决所有软件包.对于Tycho项目,pom.xml文件非常简单,因为它们不包含您的依赖关系.

Tycho显然是以Eclipse为中心的.如果你不使用eclipse,我不认为这是很有意义的,但有时在现有项目中加入更容易.

无论哪种方式,您仍然可以使用Apache Felix Maven插件在部署阶段生成OBR元数据.

原文地址:https://www.jb51.cc/java/125257.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐