<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Don&#039;t Forget to Plant It! &#187; maven</title>
	<atom:link href="http://blog.codeeg.com/tag/maven/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.codeeg.com</link>
	<description></description>
	<lastBuildDate>Wed, 28 Jul 2010 12:22:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>25 Things I Hate about Maven</title>
		<link>http://blog.codeeg.com/2008/06/28/25-things-i-hate-about-maven/</link>
		<comments>http://blog.codeeg.com/2008/06/28/25-things-i-hate-about-maven/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 15:51:10 +0000</pubDate>
		<dc:creator>Calvin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://dontforgettoplantit.wordpress.com/?p=148</guid>
		<description><![CDATA[I&#8217;ve been doing a lot of work with Maven recently, and having a miserable time of it.  Earlier this week I was ranting about it on a mailing list I was on, when I thought it would be therapeutic to try to list 100 things that irks me about Maven 2 that I&#8217;ve personally ran [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;ve been doing a lot of work with Maven recently, and having a miserable time of it.  Earlier this week I was ranting about it on a mailing list I was on, when I thought it would be therapeutic to try to list 100 things that irks me about Maven 2 that I&#8217;ve personally ran into.  So, I didn&#8217;t come close &#8211; I only came up with 25.  But I do feel much better now.</p>
<p>Here goes, in no particular order:</p>
<ol>
<li>The Maven AntRun tasks allows you run ant from within Maven, but you have very limited access to the POM.</li>
<li>If you have a multi-module project configuration, changing the version of the root project requires you to change all the versions of the sub-modules</li>
<li>Maven Ant Tasks doesn&#8217;t resolve transitive dependencies exactly the same as a regular Maven project does.</li>
<li>Maven manages adding all the dependencies you need&#8230; and then some.  You end up probably spending the same amount of time having to exclude the dependencies you don&#8217;t need, especially in EAR/WAR setups</li>
<li>You pretty much have to declare the versions of every Maven plugin you use, or risk your build breaking when someone updates the plugin.</li>
<li>You can&#8217;t create a &#8216;macro goal&#8217; that is a chain of multiple goals</li>
<li>Your custom plugins might not work if it is organized as a sub-module of a project.  Inexplicably, if you run the build inside that sub-module it works.  (Might just be a problem with Ant-based plugins)</li>
<li>Maven goes out of its way to not use Ant.  So, some things that work correctly in Ant don&#8217;t in Maven (for example, building GNU compliant tarball with the assembly plugin)</li>
<li>You can activate build profiles based on OS, file existence, and environment variables in Maven, but how do you disable them?</li>
<li>You can configure the build to deploy additional artifacts (e.g. javadoc and sources), but it won&#8217;t use the repository or snapshot repository configured for your project</li>
<li>Figuring out how a build works from reading plugin declarations is not easier than reading an Ant script</li>
<li>Good luck trying to find the artifact that you need to fix your NoClassDefFoundError</li>
<li>Passing Maven properties to your AntRun configuration?  Bah! who needs that?</li>
<li>What happened to my Maven 1.x pre/post-goals?  How is attaching plugins to build phases a better solution?</li>
<li>Multi-module projects is like having old school recursive Makefiles</li>
<li>Why can&#8217;t I define variables other than artifactId, groupId, and version to be substituted when building from an archetype?</li>
<li>Why can&#8217;t all the files in archetype-resources be included in the archetype?  Why do I have to define them all in an archetype.xml as well?</li>
<li>Versions of dependencies with classifiers are not be inheritable</li>
<li>Extending a build is difficult without creating a plugin, which requires creating yet another project</li>
<li>Customizations to the build always seems to take a few takes of trial and error before you can get them working.</li>
<li>Configurations specified for an Ant-based plugin doesn&#8217;t work if they&#8217;re specified at the execution level or the build profile level.  They will work if you specify them globally</li>
<li>Maintaining updates of plugins and what bugs are fixed in what version and what Maven version it&#8217;s compatible with is a PITA.</li>
<li>Documentation sucks.  Pretty much everything out there is surface deep.  There&#8217;s 50/50 chance that features that are skimmed over in the docs won&#8217;t work as expected</li>
<li>Why does the site:deploy and site:stage-deploy behave so differently for multi-module projects?</li>
<li>Why are build profiles inheritable?</li>
</ol>
<p>So I imagine some of the explanation are vague, but my experience is that it is par for the course when you deal with builds in Maven.  Sometimes there&#8217;s seemingly no rhyme or reason for why things don&#8217;t work, and by the time you do find a workaround that does, you just don&#8217;t want to spend anymore time figuring why your previous approaches didn&#8217;t work.  I supposed the open source thing to do is to help fix the problem, but honestly, I just don&#8217;t love Maven that much.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codeeg.com/2008/06/28/25-things-i-hate-about-maven/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
