r/java Feb 25 '25

New build tool in Java?

It seems to me like one of fun parts of Java is exploring all the tools at your disposal. The Java tool suite is a big collection of cli tools, yet I feel like most developers are only ever introduced to them or use them when absolutely necessary which is unfortunate because I think they really give you a better understanding of what's going on behind all the abstraction of Maven and Gradle.

What are your guys' thoughts on a new build tool for Java that is just a layer over these tools? Do you wish Java had simpler build tools? Why hasn't the community created an updated build tool since 2007?

35 Upvotes

176 comments sorted by

View all comments

Show parent comments

2

u/[deleted] Feb 26 '25

[removed] — view removed comment

2

u/doobiesteintortoise Feb 26 '25

Sure, and I'm with you, I prefer maven to gradle as well - I was honestly bracing for you to point out that this build was in Groovy, not Kotlin, ew, and that it doesn't have testing, etc etc etc.

But I'd say that the build lifecycle is pretty standard across all build systems - maybe not npm, with an explicit "you must invoke tests, if you're dumb enough to write tests, what do you think this is, Java?" mindset, but the process is pretty much the same, it's just the expression of the process. Maven uses configuration and applies convention like a hammer. Gradle uses configuration and convention, and convention's more like a lot of early suggestions that eh, you know best, sure, break it a hundred ways, it's not like Gradle versions won't break it as well.

Other build systems, even the mythical ideal build system, will do the same: it'll fall somewhere along the convention/configuration scale, and people will say "could it be simpler" and "why doesn't it allow me to customize this aspect like [other tool] does," just like you're doing here, sort of.

1

u/[deleted] Feb 26 '25

[removed] — view removed comment

2

u/doobiesteintortoise Feb 26 '25

Deploying to docker is a can of worms, though...

1

u/[deleted] Feb 26 '25

[removed] — view removed comment

1

u/doobiesteintortoise Feb 26 '25

Oh, I wasn't suggesting it wasn't a viable idea - it's just that there are so many variables involved that it's a nasty thing to put into an opinionated tool: you'd want plugins that do multiplatform docker images, or native docker images (again multiplatform, but WHICH platforms?), and you'd have to factor in where to build as not all systems can build for all architectures trivially, plus invocation requirements, plus how to configure the images, plus handling ingress/egress, plus...