It sounds more like the author doesn't know shit about modern Java ecosystem. HTTP servers are embeddable and configured in 5 lines of code. Connection Pools work just fine with zero config 'cause they have sane defaults. Spring Boot allows you to have proper web-app by list couple dependencies and one line of code - the one that actually starts it.
Tests work out of the box, sane distinction between integration tests and unit tests, plugins for docker and NPM so one command runs your unit tests, your integration tests, builds you docker images, runs databases, everything. Your CI is 'mvn clean verify' now, without arcane shit in bash.
Then those people come to me and say that I need to redefine "require" to be able to mock stuff (and don't forget to do it in the right order). No, thank you, I'd rather stick with my DI and write actually testable code.
Whenever I try to step away from Java I always am in trouble:
- How do I mock stuff - oh, you simply hack the core mechanisms in $language - no thanks, we've moved on past that in Java.
- How do I build stuff - well, simply write this bunch of supporting scripts in JS/bash/make whatever - no thank you, maven plugin ecosystem does it in declarative way with no support on my part.
- How do I integrate it with IDE - well you can't because you've written a bunch of custom scripts to build stuff.
- How do I package resources and dependencies - you build a docker image that has all of it (or zip file and freaking installation script) - thank you very much my jar files can do it just fine without my intervention.
Whenever I step away from Java ecosystem I feel like I'm back coding in freaking PHP.
Yep - once I got beyond 'EJBs' and other JavaEE stuff and eventually to Kotlin life has been a joy. Maven can be bewildering but to me that's the price of flexibility and I've learnt to deal with it.
For all the complexity that you can have with Maven, a large majority of projects can get away with nothing but a <dependencies> section and maybe a plugin or two. The one thing it does right that no other build tool I've used has managed to reach is make projects adhere to a fairly rigorous standard, once you understand the various phases to a maven build and the basics of a POM you can pick up any project and get started fairly quickly.