The Problem with Gradle

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • This very much lines up with my experience. A long time ago I wrote a Maven plugin[0] and it got absolutely nowhere because after everything you describe (setting up a repo, learning the Maven API, which is one of those APIs that has a lot of metaphoric semantic constructs), distributing it involved getting it into Maven Central by which point I was had run out of time/mental bandwidth and never made it happen. Compare with Grade, I would have just coded it up in Groovy, a language I thoroughly enjoy, right there in setup. There's a lot I don't like about Gradle, but there's a lot it has going for it, too.

    [0] https://github.com/dminkovsky/babel-relay-maven-plugin

  • Quarkus

    Quarkus: Supersonic Subatomic Java.

  • Being new to Gradle, I used to run into this same issue. In one of the projects I use, I happened to find this comment, in github, which helped me fix the issue https://github.com/quarkusio/quarkus/issues/10454#issuecomme...

    So increasing the default max heap size of the gradle build helped fix the issue https://github.com/quarkusio/quarkus/pull/10508/files.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Glowstone

    A fast, customizable and compatible open source server for Minecraft: Java Edition

  • I forked a project [1] in 2015 to remove Gradle, and it then quickly subsumed the original project, remaining under active development to this day.

    There were other reasons, but de-gradling was one of the main motivations for my fork, and among the first of the major changes I made. The project is an implementation of an API which was discontinued by the original developers, but initially was built using Maven.

    After switching from Gradle (which the project switched to in 2014) back to Maven, build times significantly decreased and development became much more pleasant. I found Gradle to be like a speed bump slowing down development, and reverting back to Maven was like a breath of fresh air. Simple, straightforward, and fast. Maven may not be perfect, but it does the job well.

    [1] An open source Bukkit server implementation, https://github.com/GlowstoneMC/Glowstone -> http://github.com/GlowstonePlusPlus/GlowstonePlusPlus

  • Maven Wrapper

    Discontinued The easiest way to integrate Maven into your project!

  • > Now “obviously” the answer is that we should have pegged the version of gradle required to use the script

    My first step with either gradle or maven is to install the wrapper generator, which has this effect. After adding the wrapper you invoke it via ./gradlew or ./mvnw in the project doirectory.

    It’s not perfect - especially in terms of IDE support - but it’s crucial to at least keeping your CLI builds consistent across team members and in automation.

    gradle wrapper: https://docs.gradle.org/current/userguide/gradle_wrapper.htm...

    maven wrapper: https://github.com/takari/maven-wrapper

  • jadx

    Dex to Java decompiler

  • One thing that helped me a lot is to decompile the compiled build script classes with e.g. JADX [1] to see how my code gets turned into Java, since that is what I already knew.

    That was my "Ah-ha!" moment in using Gradle.

    [1] https://github.com/skylot/jadx

  • geb

    Very Groovy Browser Automation

  • You could have a look at something like Geb - this is a completely random class I picked:

    https://github.com/geb/geb/blob/master/module/geb-core/src/m...

    So it looks mostly like Java, its just making use of Groovy's niceties and more powerful constructs in various parts to make the coding nicer.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts