Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Help Evaluating Build Tools

I'm already familiar with and use Ant & Maven, at this point I'd like to branch out to another tool and I'm deciding between 'Buildr' and 'Gradle'. I'd appreciate insight/feedback from those that have either used one or both of these tools, because quite frankly at this point the only real difference to me seems to be ruby vs groovy (and I am comfortable with and enjoy both). I'd also appreciate answers to the following:

  1. I understand that Buildr allows for downloading and extracting dependencies that are NOT in a maven type repo, does Gradle offer the same feature?
  2. Can Buildr/Gradle be used to build other language source code -- i.e. groovy, ruby, actionscript/flex, c family, etc.?
  3. How well integrated are Buildr/Gradle with Hudson or Jenkins?
like image 599
tendans6 Avatar asked May 13 '11 16:05

tendans6


Video Answer


2 Answers

I come from the gradle side, so here are some points to consider...

  1. Gradle is build on top of Ant+Ivy. It can handle both maven and ivy type repos. Excellent read about how gradle handles dependencies can be found here.
  2. Gradle handles java, groovy, scala, etc... You can find a list of standard plugins here. Since Gradle is built on top of ANT, you can use ant tasks to achieve building flex. You can basically do everything with Gradle that you could do with ANT. You may convert your old ANT XML to Gradle OR you can import an ANT script directly and use the targets as tasks in Gradle. As far as C is concerned, there are better build tools to handle that. I found this thread that you might be interested in.
  3. Gradle has a Jenkins plugin. However, Gradle has a nice feature called the gradle wrapper that most mature builds use. If you use this feature you do not need to worry about having this plugin. More on the wrapper here.

I do not know much about Buildr, so I cannot compare, all I can say is that we are happy gradle users.

like image 155
c_maker Avatar answered Sep 22 '22 10:09

c_maker


We recently evaluated Gradle, Buildr and Maven 2 as alternatives to our current mix of Ant and homegrown Ant-wrappers and ended up settling on Gradle. Technically speaking we found them (Buildr and Gradle) to be very similar and the reasons for our decision ended up being non-technical:

  1. Gradle = Groovy = Java! If you have a team of java developers the argument for being able to express build logic in a language anyone can contribute to is hard to beat... which is not a judgement on Ruby - just a consideration of what development resources are available. Groovy Closures require some getting used to but I have found it pretty fun to learn.

  2. Commercial support - this may or may not be important to your case, but in ours it was a defining factor. Gradle is commercially supported by Gradleware

  3. User adoption / popularity (mainstreamness) - for the issues that we ran into, it was easier to find answers to questions about Gradle than Buildr.

That said... I am still pretty confident either one would have supported our multi-project builds. Maven 2 would have been acceptable if we were starting from scratch, but we have a lot of quirks and odd project structures to manage which make it hard to be productive from day 1... the transition requirements made Maven 2 prohibitively expensive.

Hope that helps and good luck!

like image 22
MrJohnBBQ Avatar answered Sep 22 '22 10:09

MrJohnBBQ