I put together a brief guide on how to install Apache Maven (on Linux, MacOS and Windows).
I hope you find it useful! :)
#maven
#java
#apache
#cicd
#buildtools
#devops
#buildtools
#devlearning
#softwaredevelopment
#softwaretesting

I put together a brief guide on how to install Apache Maven (on Linux, MacOS and Windows).
I hope you find it useful! :)
#maven
#java
#apache
#cicd
#buildtools
#devops
#buildtools
#devlearning
#softwaredevelopment
#softwaretesting
New blog post!
Using immutables.org with Gradle — the right way.
The docs are Maven-only, but Gradle gives us more control. I show how to set up annotation processors cleanly with `compileOnly` + `annotationProcessor`.
Lean, fast, secure builds. https://britter.dev/blog/2025/05/16/immutables-with-gradle/
Speed up @ASFMavenProject builds!
My new post shows how using Reactor Modules for #ParallelProcessing unlocks
Parallel Builds
Dramatic Speedups
Better Architecture
Dear Gradle, Why So Stubborn?
Do I do something wrong?
Watching juniors try to set up a project and being greeted by cryptic stack traces like it's some kind of initiation ritual.
`Unsupported class file major version 61`
`invalid CEN header zip64 no access package`, ...
Java can compile code for older versions just fine.
It's literally designed for that.
Oh why, must Gradle behave like a bitter librarian who refuses to hand over a book unless I whisper the exact Dewey Decimal Code?
Every other Language will laugh again at java, seeing this.
Why is Gradle bound to a java version? And if Gradle knows it needs Java 11… why doesn't it just do this for me?
Like using `/usr/libexec/java_home -v 11` in background?
Is there a clean way to force Gradle into submission without adding another tool like SDKMAN or jabba or YunaBraska/gradle-java-fix or whatever the trendy painkiller of the week is?
#Development #Guides
The 2025 guide to JS build tools · An overview of the many build tools available today https://ilo.im/162crm
_____
#JavaScript #TypeScript #BuildTools #Browser #WebDev #Frontend
At @tuist we are building what could be the first design system for #Elixir, Noora, that’s fully accessible, doesn’t depend on #buildtools (i.e. it’s vanilla JS), and looks gorgeous.
@asmitbm & @cschmatzler are doing an exceptional work here.
In The Before Times I used Apache Ant quite a bit, and as a result over the years I chipped in on #StackOverflow so much that I became top scorer of the Ant topic tag https://stackoverflow.com/tags/ant/topusers
My colleague Barry calls me "Ant-Man..."
Happy to try to assist if you have any Ant problems or tasks. Post on StackOverflow, or ping me here.
Great article about how to get started with bld.
There's a lot of momentum and activity around bld at the moment, perfect time to jump on board!
Adam Bien from Airhacks.fm made a great 3 minute intro video to our pure Java build tool: bld
Check it out!
https://www.youtube.com/watch?v=gpuuetZqe8U
Someone asked us if bld could be used to generate native applications with GraalVM. Even though we didn't explicitly plan for this with bld, it was really impressive how straightforward and simple this was to achieve. Check it out!
#java #buildtools #graalvm
https://erik.thauvin.net/blog/posts/9927/graalvm-native-image--bld
Even though #ThingUmbrella isn't using a low-level language, many of its design aspects and decisions are explicitly about keeping resource usage low and being generally aware of code bundling, tree shaking (dead code elimination), CPU, energy & bandwidth consumptions... As the collection now consists of 186 libraries (with ~3850 source files!), every even minor saving in the shared build infrastructure will quickly have a positive compounding impact. Over the past month I've been busy updating & testing new tooling for the entire monorepo and am super happy to report _drastically_ reduced build & test times! "Drastically" here meaning a factor of 10-20x(!!!) faster...
Time to build & test the entire monorepo on GitHub's CI:
Previously, using only TypeScript for building & NodeJS for testing:
30-40 mins ()
Now, using https://esbuild.github.io for building and https://bun.sh for testing:
1:50-2 mins ()
On my MBA M1 (2021) the whole process only takes now 56 seconds!
If you want to apply the same kind of optimizations for your own project, do take a look at my package.json and tsconfig.json files in this repo:
https://github.com/thi-ng/umbrella
Ps. It's also #ReleaseMonday. Details about that in a later post...
So I've been doing some experiments to switch internal #ThingUmbrella tooling to https://bun.sh. The _much_ improved launch time per process could quickly save me a _ton_ of time when repeatedly batch processing 185 packages (be it for building, readme & doc generation/updating, releasing etc.)...
The main thing holding me back from making the switch already is `bun` offering only partial support for #Windows. I'm not a Win user myself, but don't want to exclude (or make it harder for) Windows-based contributors ("normal" users wouldn't be impacted by that change)...
Thoughts? Anyone else in a similar boat?
bld is starting to build up a nice collection of extensions, many contributed by @ethauvin!
If you haven't checked out #bld yet, please do so. You can thank us later: https://rife2.com/bld
Also, a pull request from hedger that adds the official ufbt GitHub Action. Super kind https://github.com/instantiator/flipper-zero-experimental-apps/pull/8
#developer #community #C #clang #ufbt #FlippzerZero #BuildTools #GitHub #GitHubActions
Time for the grand finale! I'm going to give this one 7 days to let as many people vote as possible.
As I suspected, SCons was a clear winner over NAnt and Grunt in the last round, so the final contest for the title of Worst Build Tool 2023 is between autotools and SCons.
Which is the worst?
Round 7: SCons shot in to first place with 67% of the vote. That would have been my choice too. #BuildTools
Time for the winners of the previous rounds to face off. This is where it gets tough.
Pick your least favorite build tool from these winners:
Round 6 was another tie, Grunt vs Broccoli. I'm casting my tiebreak vote for Grunt, because (a) non-ECMA module syntax and (b) CoffeeScript.
And now for the grand finale of the first round of contests: it's time for the Python build tools.
Obviously they're all bad, after all this is Python, but which is truly the worst?
#BuildTools
Round 4: An easy win for autotools. On to round 5!
This time it's JavaScript build tools. Which is the worst?
Round 3 was a tie between Maven and Gradle, so I'm going to leap in and cast a tie-breaking vote for Maven.
For round 4 of what is now the Terrible Build Tools April Madness, four heavy hitters from the C/C++ world. Which is the worst?