Almost two years have passed since my blog post about the the discrepancy of OSGi/p2 on the one side and Maven on the other. At that time I was pessimistic that the two worlds would ever come together and the creation of the B3 project even reinforced that impression.
Nonetheless I followed Sonatypes efforts on the Tycho front during the last year, which looked very promising. It actually already works so well that I recently changed the build of openHAB from Maven2/PaxConstruct to Maven3/Tycho - it's really cool (a blog post with details will follow soon).
Seeing that Chris Aniszczyk has now also embraced Tycho for the JGit/EGit builds is a clear sign that Tycho (and thus Maven) is slowly being picked up in the Eclipse space.
And the best news: Tycho has just been proposed as an Eclipse project! As the proposal states, it "competes with these [Buckminster, B3, PDE Build and Athena] projects". But seeing its current stability, its ease-of-use and all its possible synergies with the existing Maven tooling, I am pretty sure that it will win the race for being the preferred future build infrastructure for Eclipse/OSGi projects.
Kudos to Sonatype, who really put a lot of effort into this and who has torn down the barriers between the two worlds!
Subscribe to:
Post Comments (Atom)

6 Kommentare:
I think embraced is a strong word to use. It was more baptism by fire as there were quite a few kinks to getting setup with Tycho (I think things are improving though).
It was more of a decision based on set of detailed requirements. There were folks that wanted Maven/p2 based artifacts for JGit and we needed to have p2 repos for EGit. Tycho was the thing at the time that allowed us to move forward with this type of build setup.
I think there are a lot of good build systems at Eclipse and it really depends on what your requirements are.
Agreed, embraced was probably the wrong word to use. I remember talking to you at the last ESE and at that time you didn't care too much about Maven at all. So, yes, somebody had to baptize you and it has happened ;-)
Maven and I have a long history. I just remember back in the day debugging a lot of Maven build issues and drinking a lot of Mavenritas :)
In all seriousness, I think Maven is improving a lot as of Maven3 and I welcome their adoption of OSGi. Anything that exposes developers to modularity is a good thing. Maven did a good job of it at development time and OSGi does a great job of it at runtime. When you unite these two systems, it will be a good thing.
@Kai,
How much have you looked at the other build technologies? As the project lead for Buckminster I'm of course especially interested in your opinion on that.
You mention ease of use as one factor that will make Tycho win the race, which makes me wonder if you are aware that:
1. Buckminster builds exactly the same way as the IDE. It uses the workspace and the Eclipse build infrastructure. I.e. we use compiler settings, warnings, and internal builders. That includes the PDE builder, Schema builder, API verifier, and custom builders added to your .project files. How does Tycho handle that?
2. Buckminster does not require extra files to be added to each project in order to build them. Tycho, afaik, must have at least the POM file with the redundancy that it brings.
Buckminster has other 'ease of use' things too, like built in integration with the Eclipse signer, intelligent pack200 support, etc. To my knowledge, most of that needs to be specifically added to a Tycho build.
Unlike you, I'm not so pretty sure that Tycho will win the race. Then again, I'm fairly biased :-)
@Thomas,
I didn't want to step on anybody's feet with my prediction and I definitely do not want to say that the other projects such as Buckminster are in any way inferior.
I would rather agree with you that technically other projects (especially Buckminster) are more advanced and provide much neater features to Eclipse users - and thus ease-of-use.
The main reason why I see Tycho winning on the long run is not because of technology, but because of the learning curve; Maven, almost being a de-facto standard in the Java enterprise world, is simply already known by the average Java developer and as such, it's easy to get started (incl. reporting, tests, CI integration, release mgmt, etc.).
IMHO that's the biggest benefit and it will give Eclipse specific systems a hard time. I already see a lot of interest by others in Tycho out of this reason. Having said this, it does not mean that it is really the best technology to choose - after all, almost every build system gives you hard times if you get into the details and they make you ask for more Mavenritas ;-)
@Kay,
Thanks for clarifying. I agree that Maven certainly has an advantage with its large user-base.
Post a Comment