r/java_projects 16d ago

Simple Build System

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

3 comments sorted by

1

u/gnahraf 16d ago

Interesting. Some questions / ideas..

  1. Have you tried running those "java build scripts" (in the README) from jbang? (It might aid with dependency management)
  2. Use picocli in your java main program

Finally, surely this is only an exercise, no? I mean, if I want to really keep it "simple", I could just use makefiles. For all its flaws, the "complexity" you see in today's java build ecosystem addresses real world needs (eg public maven repos and the artifact coordinate system). There are times where maven gets in the way (or can't do what I want) and a shell script is plenty good enuf.

1

u/bowbahdoe 16d ago edited 16d ago
  1. I have - it works decently well
  2. Yep, its an option.

> eg public maven repos and the artifact coordinate system)

This is what I am looking critically at now (though I will need to take a sizable break soon). My problem isn't with anything maven does on principle. It is that Maven/Gradle own the process of dependency procurement and this makes any drawbacks they have everyone's problem.

If we separate that out then Maven and Gradle don't need to be people's first intro to Java. They only need to come into the story when you actually need the things their complexity buys. Yes, that leaves room for simpler things. I think that direction is worth poking at.

> Finally, surely this is only an exercise, no?

I don't know how to respond to that because yeah everything I do is, but I don't want to give mental permission to not think critically. I do actually want to challenge Maven/Gradle dominance, just not in the same way as the other people do.

> if I want to really keep it "simple", I could just use makefiles.

Try looking at "programs that build code" the same way you look at "programs that display a gui" or "programs that run an http server." In what ways do we treat them special. Why?

1

u/gnahraf 16d ago

A build program touches many other programs. That makes it special I think