Working with Maven, OSGi and Bndtools

坚强是说给别人听的谎言 提交于 2019-12-03 17:31:18

问题


Today I was asked whether it is a good idea to use Maven in our current OSGi application. We used Bndtools and its great since it makes development as easy as possible. Bndtools uses OBR to maintain other bundles and dependency resolution even during the application is running.

Since Maven is widely spreading around and is so popular, mostly all try to use it in OSGi environments too. For me these are two different approaches. OSGi has a its own declaration of dependencies, the MANIFEST.MF and Maven a pom, where you can declare them. So if you use both of them, you will declare dependencies two times. Of course you can use the Apache OSGi Maven Plugin to avoid it and Maven is responsible for creating the MANIFEST.MF. BUT Maven Repositories do not really care about bundles. So it CAN happen that you are referencing to a non bundle jar.

Of course, there are advantages using Maven, but is it really a good thing to combine it with OSGi or specially with Bndtools?

Could somebody provide advantages or disadvantages! Has someone practical experience with using both?


回答1:


I think if pretty much anything you do centers around Maven, then Apache Felix Maven plugin (also based on BND, by the way) is the way to go.

Otherwise if you want to use Maven but in a less central role, Eclipse Tycho makes a lot of sense. Tycho is a set of Maven plugins.

Using Tycho you supply the target platform from Eclipse to Maven, and then it can resolve all bundles by looking at your MANIFEST and target platform. The pom.xml files are really simple for Tycho projects, as they do not contain your dependencies.

Tycho is obviously very Eclipse centric. If you don't use eclipse I don't think it makes much sense, but sometimes it is easier to incorporate in an existing project.

Either way, you can still use the Apache Felix Maven plugin to generate OBR metadata in the deploy phase.




回答2:


I think using Maven with OSGi projects works very well. You can use the Felix Maven BND plugin to make your life a lot easier. With this, maven can automatically generate OBR metadata in your local (or remote) maven repository. This lets you treat your maven repository as an OBR as well. It makes the workflow for OSGi projects the same as other projects, and everything is very seamless and fairly easy to use.

We use it at work, and Maven really makes things easier to use. For example, we use Maven to generate Eclipse project files, run automated builds on a CI server, and create OBR metadata.




回答3:


For those coming to this question now, a lot of time has passed since it was originally asked. The Maven work that Neil Bartlett referred to above has matured and there is quite good integration between Bnd/Bndtools and Maven now, including an m2e connector for Eclipse/Bndtools.

Neil co-authored a slideshow on this with Tim Ward:

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



来源:https://stackoverflow.com/questions/10567325/working-with-maven-osgi-and-bndtools

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!