News for hackers. Stuff that matters.
Re:Apache Ivy – any future or is it also going to be retired? by bluejekyll on Monday December 05, 2016 @10:14AM (#13105796)
Maven is declaritive. IMO it's the best of the Java build tools. Gradle is not declaritive, unless it's changed since the last time I looked at it.

Maven has problems. It's not perfect by any means. I would love to see it rewritten, get rid of the verbose XML which makes viewing dependencies hard and fix the craziness around generated code.

Honestly, I'm tempted to make a fork of Cargo for Java, it's nearly perfect. But this goes against my opinion that build tools should be in the same language as the code they build.

Re:Apache Ivy – any future or is it also going to be retired? by blktiger on Monday December 05, 2016 @10:58AM (#13106241)
Generally speaking gradle plugins take a very declarative syntax. Yes, it's easy to write non-declarative builds in Gradle, but that's what is awesome about it. Start with fully declarative builds, then add in non-declarative tasks if/when you need them.
Re:Apache Ivy – any future or is it also going to be retired? by perrylaj on Monday December 05, 2016 @02:32PM (#13108482)
My experience generally mirrors what you state. I transitioned a fairly significant code base & complex deployment process from a mix of maven and ant to gradle. I found Gradle's 'opinionated but flexible' approach to strike a good balance. It's definitely more complex, at least in our build, simply because of the size and scope of our project which has a wide variety of inter-dependencies which makes for a very complex task graph to build. But, the parallelism results in a far faster build/deploy cycle which is a worthy tradeoff.

We initially planned on going full maven, but its strict lifecycle and plugin system was simply too rigid. Beyond that, XML makes for some verbose configuration for even simple things.

We ended up developing our own Gradle plugins in static groovy and java, but it's very easy to do small bits/tests based on scripts and migrate functionality into specific-purpose plugins. Using Gradle was especially fortuitous when it came time to implement new areas of the product that relied on npm/node and webpack for front-end resource assembly.

Gradle hasn't been without its own minor growing pains (early lack of tooling support, rapid version changes), and it's certainly possible to create a big complex mess if you script everything ala ant -- but it's also possible to create very nicely defined DSLs and build systems that are expressive in use. Our onboarding got significantly easier in switching to gradle from maven+ant, and teams can now easily make minor tweaks for their build needs without having to learn maven's plugin architecture.

Builds, just like anything else, benefit from some best practices. I have no issue with Maven, but I won't start a new project with it.

Re:Apache Ivy – any future or is it also going to be retired? by vroombaprime on Monday December 05, 2016 @02:37PM (#13108567)
Everything you said matches my experiences - the complexity has to be watched closely, but otherwise it's a huge boon.
Re:Apache Ivy – any future or is it also going to be retired? by MrBuddyCasino on Monday December 05, 2016 @12:14PM (#13107010)
I tend to agree. Gradle can be nice if you have a talented team, but in the hand of mediocre developers, its opening the box of pandora. I have seen build files you people wouldn't believe. And unfortunately, all that code will not be lost in time like tears in rain.
Re:Apache Ivy – any future or is it also going to be retired? by koolba on Monday December 05, 2016 @11:20AM (#13106465)
> Honestly, I'm tempted to make a fork of Cargo for Java, it's nearly perfect. But this goes against my opinion that build tools should be in the same language as the code they build.

The problem with that is that it doesn't work with slow / compiled languages. That's the worse thing about Maven (tied with the insane unnecessary complexity of the plugin architecture). The dev cycle for trying out a new plugin is atrocious. Compare that to editing a local copy of a Python, Ruby, or Groovy script.

Re:Apache Ivy – any future or is it also going to be retired? by pjmlp on Monday December 05, 2016 @02:19PM (#13108374)
I have spent one year taking part in a multi-team project to fix a build system, because everyone made their own little changes in Ant.

A chaos in a three site distributed system, with around 300 developers at its peak.

In this regard, Gradle is even worse than Ant in what concerns keeping a build infrastructure clean.

Re:Apache Ivy – any future or is it also going to be retired? by perrylaj on Monday December 05, 2016 @02:48PM (#13108707)
Oddly enough, my experience was quite opposite of yours, but it sounds like the scope of your system might be a little larger than ours.

The key to cleanliness (from my perspective) was to create versioned plugins for any build functionality that was required in more than one subproject. This simple rule prevents spaghetti task dependencies and maintains sanity for everyone. It gives us the best of both worlds -- a little bit of flexibility when needed for one-offs, but then a well defined DSL via plugins for anything that is done more frequently.

Re:Apache Ivy – any future or is it also going to be retired? by vorg on Monday December 05, 2016 @05:59PM (#13110652)
Gradle since version 3.0 provides Kotlin as well as Apache Groovy for writing build scripts.