与Maven,OSGi和Bndtools合作



今天有人问我,在我们当前的OSGi应用程序中使用Maven是否是一个好主意。我们使用了 Bndtools,它很棒,因为它使开发尽可能简单。Bndtools 使用 OBR 来维护其他捆绑包和依赖项解析,即使在应用程序运行时也是如此。

由于Maven被广泛传播并且非常受欢迎,因此大多数人也尝试在OSGi环境中使用它。对我来说,这是两种不同的方法。OSGi有自己的依赖声明,即MANIFEST。MF 和 Maven 一个 pom,您可以在其中声明它们。因此,如果同时使用它们,则将声明依赖项两次。当然,您可以使用Apache OSGi Maven插件来避免它,Maven负责创建MANIFEST。中频。但是Maven存储库并不真正关心捆绑包。因此,您可能会引用非捆绑罐

当然,使用Maven也有优势,但是将其与OSGi或特别是与Bndtools结合使用真的是一件好事吗?

有人可以提供优点或缺点吗!有人有使用两者的实际经验吗?

我认为

如果你所做的任何事情都以Maven为中心,那么Apache Felix Maven插件(顺便说一下,也基于BND(是要走的路。

否则,如果你想使用 Maven 但扮演一个不太重要的角色,Eclipse Tycho 很有意义。第谷是一组Maven插件。

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

第谷显然非常以Eclipse为中心。如果你不使用 eclipse,我认为它没有多大意义,但有时合并到现有项目中更容易。

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

我认为将

Maven与OSGi项目一起使用效果很好。您可以使用Felix Maven BND插件使您的生活更轻松。有了这个,maven可以在您的本地(或远程(maven存储库中自动生成OBR元数据。这使您可以将maven存储库也视为OBR。它使OSGi项目的工作流程与其他项目相同,并且一切都非常无缝且相当易于使用。

我们在工作中使用它,而Maven确实使事情更容易使用。例如,我们使用 Maven 生成 Eclipse 项目文件,在 CI 服务器上运行自动生成,以及创建 OBR 元数据。

对于那些现在提出这个问题的人来说,自从最初提出这个问题以来已经过去了很长时间。Neil Bartlett上面提到的Maven工作已经成熟,现在Bnd/Bndtools和Maven之间有很好的集成,包括Eclipse/Bndtools的m2e连接器。

Neil与Tim Ward共同制作了一张幻灯片:

https://www.slideshare.net/mfrancis/bndtools-and-maven-a-brave-new-world-n-bartlett-t-ward

相关内容

  • 没有找到相关文章

最新更新