加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用Maven,OSGi和Bndtools

发布时间:2020-12-14 16:27:59 所属栏目:Java 来源:网络整理
导读:今天我被问到在我们当前的OSGi应用程序中使用Maven是个好主意.我们使用Bndtools和它的伟大,因为它使开发尽可能容易. Bndtools使用OBR来维护其他捆绑包和依赖关系分辨率,即使在应用程序运行. 由于Maven广泛传播并且非常受欢迎,所以大多数人都尝试在OSGi环境中
今天我被问到在我们当前的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元数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读