我是OSGi世界的新手,需要帮助来理解如何自动化我的构建过程。我熟悉了在Eclipse中使用bndtool,并学会了如何解析依赖项、运行、测试、调试和生成独立的jar。我还阅读了OSGi官方网站上发布的basic和Maven教程。我的问题是如何使我的构建自动化!所以,假设我有SVN格式的代码。我需要能够签出代码,然后运行构建脚本/工具来生成我的包,然后我可以使用Felix或Karaf进行部署。官方的基于Maven的教程(使用OSGi enRoute)只展示了如何生成一个独立的jar,这不是我感兴趣的;我需要生成包。我读到过Maven Bundle插件,但我认为当我使用它时,我将失去Eclipse中基于UI的bndtools所提供的所有奢华。非常感谢您的帮助!
发布于 2016-11-10 16:45:08
如果您使用带有bndtools的maven构建,那么您确实失去了一些好处。我有一个使用maven构建的完整项目的示例。参见osgi-chat。它使用bnd-maven-plugin构建包,但您也可以使用maven-bundle-plugin。在这两种情况下,您都使用eclipse中的标准m2e支持。然后,Bndtools只涉及解析包和创建可运行的jar。
在apache社区的许多项目中,我们都使用纯maven方法。这是在apache karaf上部署的行之有效的方法。如果你想部署到karaf,那么bndtools不会有太大帮助,因为它不能创建karaf特性。
如果您想要bndtools的所有IDE支持,那么使用带有bndtools工作区(cnf dir)的原生bndtools构建,并使用它提供的gradle构建。
发布于 2016-11-10 20:51:06
Bndtools附带了一个gradle插件,您可以使用它来导出可执行jar,但是如果您只是运行构建,那么jar将在每个项目的生成文件夹中可用。
您可以使用runbundles任务基于.bndrun文件导出捆绑包(这类似于生成可执行jar,但只是创建了一个包含捆绑包的文件夹)
发布于 2016-11-12 21:49:02
作为maven的长期用户,同时也因为我计划使用karaf (jboss fuse),我遵循Christian的建议,花了一些时间探索maven-bundle-plugin,并计划探索bnd-maven-plugin。从对bnd-maven-plugin的第一次阅读中,我发现它比apache plugin有一些优势(直接从bnd而不是pom获取指令;更新速度更快,预计与bnd更新并行)。关于这个插件,我仍然需要了解的一件事是:它为哪个OSGi发布版本生成包?根据官方网站的说法,我知道maven-bundle-plugin只为R4生成,这是一个限制。那么bnd-maven-plugin呢?还有一个问题:哪些插件可用于生成karaf kars,它们是否可以与bnd-bundle-plugin结合使用?非常感谢您的耐心等待!
https://stackoverflow.com/questions/40520026
复制相似问题