My rule of thumb is: if it doesn't "just work" with Maven and Netbeans I (or maybe sometimes someone else) is doing something wrong. (Although that "wrong" could be using a project that isn't ready for production use.)
At one place we had this saying: I fixed more and more problems by removing my bosses code (i.e. falling back to the relatively sane defaults.)
Very interesting phenomenon!
Paraphrasing the Peter principle: incompetent people will be promoted until they can inflict the least harm.
In some sense, this is a natural self-defense mechanism of an organization, like how the body encapsules benign tumors in connective tissue.
I've seen consultants that would create crazier code.
He just wasn't used to Maven conventions.
Oh, and we both laughed :-)
A few years later I embraced the declarative way, and changed my mind about it.
In fact, I only use Gradle instead of Maven on Android projects, because Google forces me to do so.
From my perspective many projects have issues with Maven, because it is easier to think imperative instead of declarative.