Ranter
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Comments
-
@magicMirror
https://lihaoyi.com/post/...
SBT.
If you think build tools suck, then SBT will teach you that sucking is marvelous genious compared to SBT. -
@devRancid I can only partially understand the hate for Gradle.
Gradle does a lot of things right.
It's not easy writing a Plugin in Gradle as the API is as dense as a black star....
.... But other than that? Pure bliss imho.
Multi modules done right, convention plugins, dependency scopes like api / Implementation / ... .
Plus an active upstream development, a fuckton of plugins and the possibility to directly use Java / Kotlin inside the buildsystem - if the DSL isn't enough.
SBT does not even come close in futures, except for complexity. The 4 dimensional configuration of SBT is definitely worse than Gradle's API.
Yes, writing plugins for Gradle takes time, too and isn't easy (depending what you want to do). But compared to SBT... Piece of cake.
Other build tools:
Here is a plugin, use it . Be done.
Scala Build Tool aka SBT:
Build your own plugin.
Everything is scala...
You can create by the way funny endless loops when using the wrong syntax - yet it might compile successfully. And then when you load the plugin, it works. Till it is evaluated - lazy evaluation for the fun.
Error messages are at best cryptic.
*If* you manage to get a working plugin and *if* it runs...
Surprise. Surprise.
You might need to parse the log output of SBT.
Another funny surprise: Log output isn't configurable. You can configure the log level. That's it.
So after a lot of pain stakingly putting together a fucking shitty plugin, you can now grind the rest of your brain with ...
sed.
Cause yeah. You can now use regex to parse an sbt build log and extract the necessary information.
:)
...
So....
Are we there?
Mwahahahhaa.
Only if you haven't forgotten to either disable colored output for SBT... Or take an extra mile with e.g. less -R.
Otherwise you have ASCII control characters in your file. :-)
After getting that shit to work, you now have finally a parseable build log.
Just took days instead of hours.
But that's SBT. :-)
rant
sbt