Maven Builds Are An Infinite Cycle Of Despair.
Kent R. Spillner has posted a divisive condemnation of popular
build tool Maven, at his personal blog.
After extolling the virtues of self-created build tools, and giving
favourable reports of his experiences with Rake and Ant, Spillner
introduces Maven builds as “an infinite cycle of despair that will
slowly drag you into the deepest, darkest pits of hell (where Maven
itself was forged.)” His blog closes with hyperlinks to download
Ant and Rake, buried in the phrase “save yourself” – making it very
clear how he feels about the Apache-hosted tool.
Spillner concedes that you might initially be content with Maven
but, in his opinion, “soon, you will encounter Maven’s low glass
ceiling for the first time.” He claims that using “some convulted
pom.xml hackery” to work your way around Maven-related problems is
“a lot like some tragic Greek myth, only you are the damned soul
and the eternity of suffering is your build process.”
One of the (many) arguments Spillner has with Maven, relates to
configuration. He claims that getting Maven to do anything other
than “compile, run unit tests, package .jar file” requires
“configuring the conventions (and)….Maven configuration is verbose,
difficult to read and difficult to write.”
Also coming under fire in the blog is Maven’s convention of
automatically resolving its own plug-in dependencies and project
dependencies; or, in Spillner’s words: “slowing down every build by
connecting to the network and checking every dependency for any
updates, and automatically downloading them.” He gives a specific
example: “I recently worked on a Maven project which produced a 51
MB .war file; by switching to Ant with hand-rolled dependency
management, we shrunk that .war file down to 17 MB.”
“(It is) a gaping security hole since it is currently impossible in
Maven to determine where artifacts originally came from and whether
or not they were tampered with.”
It all leads to his conclusion that: “Maven is broken and
wrong.”
However, he does have some words of encouragement for build tool
developers: “you know your build is awesome when it works the
opposite of Maven.”
0 Comments