2016-11-10 57 views
0

我对OSGi世界相对较新,需要帮助来了解如何自动化构建过程。 我自己熟悉在Eclipse中使用bndtool,并学会了如何解决依赖关系,运行,测试,调试和生成独立的jar。我也浏览了OSGi官方网站上发布的基本和Maven教程。 我的问题是如何自动化我的构建!所以,假设我在SVN中有代码。我需要能够检查代码,然后运行构建脚本/工具来生成捆绑包,然后我可以使用Felix或Karaf进行部署。 基于Maven的官方教程(带有OSGi enRoute)仅显示如何生成独立的jar,这不是我感兴趣的东西;我需要生成捆绑。 我读过关于Maven Bundle Plugin的内容,但我想在使用它时,我将失去基于UI的bndtools在Eclipse中提供的所有豪华功能。 非常感谢您的帮助!如何自动化bndtools构建

回答

1

如果你用bndtools使用maven构建,那么你确实会失去一些好处。我有一个使用Maven构建的完整项目的例子。见osgi-chat。它使用bnd-maven-plugin来构建捆绑包,但您也可以使用maven-bundle-plugin。在这两种情况下,您都可以在eclipse中使用标准的m2e支持。 Bndtools然后只涉及解决捆绑和创建可运行的jar。

我们在apache社区的许多项目中使用纯maven方法。这是在Apache karaf上部署的经过验证的方式。如果你想部署到卡拉夫,那么bndtools不会有太大的帮助,因为它不能创建卡拉夫功能。

如果你想把所有的IDE支持bndtools的再使用原生bndtools建立了bndtools工作区(CNF目录),并使用gradle这个构建它提供。

0

Bndtools配备了gradle这个插件,你可以用它来输出一个可执行的JAR但如果你只是运行生成的罐子会在每个项目的生成的文件夹可用。

可以使用runbundles任务根据.bndrun文件导出包(类似以生成可执行的JAR只是创建一个包含包的文件夹)

0

作为一个长期的Maven用户,也因为我我打算使用karaf(jboss导火索),我遵循了Christian的建议,花了一些时间探索maven-bundle-plugin并计划探索bnd-maven-plugin。 从关于bnd-maven-plugin的第一次读物中,我发现它比apache插件有一些优点(直接从bnd而不是pom获得指令;预计更新与bnd更新并行)。有一件事我仍然需要了解这个插件:哪个OSGi发布版本为它生成捆绑包?根据官方网站的说法,我知道maven-bundle-plugin只为R4生成,这是一个限制。那么bnd-maven-plugin呢? 还有一个问题:哪些插件可用于生成karaf kars,并且可以将它们与bnd-bundle-plugin结合使用? 非常感谢您的耐心等待!

0

我花了一些时间探索bnd-maven插件。 这是我能找到的混合Eclipse中的BND-Maven的插件和bndtools的最佳方式: 1.使用bndtools解决的要求,并在Eclipse中运行的框架内束。 2.使用bnd-maven-plugin构建捆绑软件 3.使用'indexer'插件生成一个索引文件,用于bndtools的依赖关系解析。 尽管此方法允许从Eclipse内部运行包,但每次都需要'mvn install',因为bndtools插件不知道如何解析来自Eclipse工作区的依赖关系。这种方法也使得在Eclipse中调试代码变得不可能。有没有更好的选择?

谢谢