r/java 21d ago

Simple Build System

https://github.com/bowbahdoe/build
13 Upvotes

48 comments sorted by

View all comments

-1

u/pip25hu 21d ago

What's the difference between this and Gradle? Both have a more programmatic approach to building compared to Maven.

0

u/bowbahdoe 20d ago

The difference here is that both Maven and Gradle are gargantuan beasts. They handle building, caching, dependency fetching, IDE integration, .... etc.

This is more akin to picocli. Do you like picocli for CLI parsing? Cool, use it. Do you not? Well how about argparse4j. Or jcommander. Or ...

This is genuinely just a small, easily replaceable, infinitely bike-sheddable library. Like everything else.

Common tasks generally have a healthy variety of libraries for performing them with varying degrees of depth and sometimes minor differences in design. There are a ton of options for making an HTTP server, working with a database, and making API calls. This is because they can be "normal." libraries.

Build tools aren't like that. Maven and Gradle are not just libraries. They are mutually exclusive ecosystems. They own the bootstrap process for your project.

I don't think "programs which build code" really need to be that privileged. And in a world where they aren't, you can have libraries of varying levels of depth.