Help Evaluating Build Tools
Asked Answered
A

2

6

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?
Alvey answered 13/5, 2011 at 16:16 Comment(0)
O
6

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.

Ormolu answered 15/5, 2011 at 2:18 Comment(4)
Thanks for the in-depth explanation and links; they were very helpful. However, I do have one follow-up question: Can Gradle handle ruby/jruby language builds? From the Gradle site it appears that it does not.Alvey
@tendans6: Ruby is interpreted so no need for compilation. I am guessing you can use Gradle's Exec task (gradle.org/latest/docs/dsl/org.gradle.api.tasks.Exec.html) to run Ruby scripts from the command line. Never tried this before though... I am also not sure about JRuby. You need a compiler that translates jruby source into java byte code. Maybe with Ant...?Ormolu
You're right one can run scriptsfrom Gradle's exec task, moreover (and what I was interested in) it appears that one can use Gradle to package ruby scripts. Similarly, it seems one can use Gradle's ant-like tasks to compile JRuby scripts (via jrubyc). I appreciate the insight and the direct links.Alvey
In 2015, Gradle seems ready to do C/C++. See Gradle and C/C++ Workshop etc. and Getting Started with Native. I'm gonna try that..Aleksandr
V
4

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!

Vino answered 1/6, 2011 at 23:50 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.