Why Everyone (Eventually) Hates (or Leaves) Maven

I found this article on why developers eventually hate Maven to be very insightful and to apply, beyond build tools, to programming in general.

I defined two types of extensibility/programability abstractions prevalent in the development world: composable and contextual. Plug-in based architectures are excellent examples of the contextual abstraction.
Composable systems tend to consist of finer grained parts that are expected to be wired together in specific ways.
— nealford.com