<?xml version="1.0" encoding="iso-8859-1"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://blogs.codehaus.org/people/dion//archives/maven.html">
<title>dion - Maven</title>
<link>http://blogs.codehaus.org/people/dion//archives/maven.html</link>
<description></description>
<dc:language>en-us</dc:language>
<dc:creator></dc:creator>
<dc:date>2004-05-26T17:57:55+10:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=2.661" />

<items>
<rdf:Seq><rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000738_and_so_the_duplication_begins.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000730_more_on_fire_v2.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000729_fire_version_2.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000726_quick_access_to_jelly_docs_via_firefox.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000718_maven_needs_to_learn_from_ant.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000717_problems_with_the_maven_10_architecture.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000661_maven_10_rc2_uses_a_lot_less_memory.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000625_websphere_and_maven.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000623_netbeans_module_plugin_for_maven.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000622_netbeans_gets_maven_support.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000600_maven_resignation.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000246_antipatterns_and_ant.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000245_doclets_and_documentation.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000211_onjava_article_on_maven.html" />
<rdf:li rdf:resource="http://blogs.codehaus.org/people/dion/archives/000204_installers_for_java_programs.html" />
</rdf:Seq>
</items>

</channel>

<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000738_and_so_the_duplication_begins.html">
<title>And so the duplication begins</title>
<link>http://blogs.codehaus.org/people/dion/archives/000738_and_so_the_duplication_begins.html</link>
<description><![CDATA[<p>See <a href="http://nick.chalko.com/smc2/blog/tech/Java/?permalink=AntWorks.txt">AntWorks</a> for yet another library of reusable Ant imported tasks.</p>

<p>This one uses a list of properties as it's project model.</p>

<p>It will be interesting to see how it's possible to <a href="http://antworks.sourceforge.net/antlets/">pass parameters</a> onto javac to do the compile.<br />
</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-05-26T17:57:55+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000730_more_on_fire_v2.html">
<title>More on Fire v2</title>
<link>http://blogs.codehaus.org/people/dion/archives/000730_more_on_fire_v2.html</link>
<description><![CDATA[<p>Howard's posted a bit more about <a href="http://howardlewisship.com/blog/2004/05/moving-away-from-maven.html">Moving away from Maven</a></p>

<p>Since his blog requires a Blogger account to post, I'm commenting here.</p>

<p><strong>Simplicity:</strong><br />
Even though Maven is not a simple beast (lets not pretend that Hivemind is either), it does make quite a few things simple to the <strong>user</strong> of the build. Knowing that a project will always be able to have a standard set of functionality on it, removes the usual Ant build file reading and understanding most people go through when trying to start with a project.</p>

<p>However, he's fallen into the same trap with his proposed Ant build file, he's now got Ant XML documents pretending to be programs with the &lt;import&gt; tags.</p>

<p><strong>Consistency:</strong><br />
This is probably one area maven shines above howards example build file. He now has his own common 'jar' and 'download' code, not a shared consistent one.</p>

<p><strong>Efficiency</strong><br />
I'll agree Maven's not as slim as Ant, but then Ant's not as slim as make.exe either. As for needing to fork the unit tests, maybe if there was a bug report or a user list posting someone could fix this. Without it, there's no chance.</p>

<p><strong>Feedback</strong><br />
I agree Maven sucks at this, but I still haven't seen a failure error message from  an imported ant build file to compare it with.</p>

<p>On to the example maven and comparative build files.<br />
<ul><br />
<li>I believe the javacc plugin bug was fixed. So that removes the need for the maven.xml altogether. </li><br />
<li>If you want to compare sizes, at least be consistent enough to show all the files, e.g. the jar-module.xml and javacc.xml</li><br />
<li>Also be consistent about what you put licenses on as well. The project.properties file has a license taking up most of it, but no licenses are shown for build.xml</li><br />
<li>project.xml contains lots of useful stuff for me that's not shown in the Ant build file.</li><br />
</ul></p>

<p>In summary, yes Maven will be more verbose than hand crafting personal Ant build files, and yes the error message reporting in Maven is woeful.</p>

<p>I'm still waiting to see the build file that Howard comes up with to produce his "Integrated pretty documentation (with navigation)".<br />
</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-05-22T07:48:43+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000729_fire_version_2.html">
<title>Fire version 2</title>
<link>http://blogs.codehaus.org/people/dion/archives/000729_fire_version_2.html</link>
<description><![CDATA[<p>I saw on <a href="http://howardlewisship.com/blog/2004/05/maven-like-downloads-for-ant.html">Howard's blog</a> how he's converting back to Ant from Maven.</p>

<p>Go for it!</p>

<p>I'm happy that with Maven we have all this stuff centralised and standardised, and that 100s of developers aren't rewriting tasks, making up macros and other stuff to add into their Ant build files.</p>

<p>Maven's not everybody's cup of tea, but it does do quite a good job of cutting down on build file psychomania.</p>

<p>Howard, get a trackback link!</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-05-21T17:30:20+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000726_quick_access_to_jelly_docs_via_firefox.html">
<title>Quick access to Jelly docs via FireFox</title>
<link>http://blogs.codehaus.org/people/dion/archives/000726_quick_access_to_jelly_docs_via_firefox.html</link>
<description><![CDATA[<p>I often go looking up the syntax for jelly tags or ant tasks.</p>

<p>Firefox has this cool feature that allows you to parameterise a bookmark.</p>

<p>Take this bookmark:<br />
<img alt="jelly.jpg" src="http://blogs.codehaus.org/people/dion/archives/jelly.jpg" width="327" height="295" border="0" /></p>

<p>to <strong>http://jakarta.apache.org/commons/jelly/tags.html#core:%s</strong></p>

<p>Note the %s there.</p>

<p>I gave that bookmark a 'keyword' of <strong>jelly</strong> in the bookmark and I can now type <br />
<strong>jelly forEach</strong><br />
or<br />
<strong>jelly if</strong><br />
in the address bar and be taken straight to the docs for the tags.</p>

<p>I also use one for Ant.<br />
<img alt="ant.jpg" src="http://blogs.codehaus.org/people/dion/archives/ant.jpg" width="327" height="295" border="0" /></p>

<p>Thanks to <a href="http://diveintomark.org/archives/2004/05/12/copy-editor">Mark Pilgrim</a> for the details and <a href="http://www.mycgiserver.com/~gpiancastelli/blog/">Giulio Piancastelli</a> for the Ant core tasks one.</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-05-19T18:50:43+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000718_maven_needs_to_learn_from_ant.html">
<title>Maven needs to learn from Ant</title>
<link>http://blogs.codehaus.org/people/dion/archives/000718_maven_needs_to_learn_from_ant.html</link>
<description><![CDATA[<p>I found this <a href="http://codefeed.com/blog/archives/000068.html">article</a> from Conor on Ant's IO system, something Vincent and I have discussed on IRC as something Maven could readily do with.</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-05-15T00:53:51+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000717_problems_with_the_maven_10_architecture.html">
<title>Problems with the Maven 1.0 architecture</title>
<link>http://blogs.codehaus.org/people/dion/archives/000717_problems_with_the_maven_10_architecture.html</link>
<description><![CDATA[<p>A small brain dump on some of the bad things about Maven 1.0 and it's architecture .</p>

<p>Plugins live in $MAVEN_HOME/plugins. <br />
- There is no documented location for non-maven plugins to persist between installs. <br />
- No documented location for 'single user' plugins for a multi-user install.</p>

<p>Which plugins?<br />
- There's no way to define a list of required plugins for a user or installation. This creates issues across larger installations.</p>

<p>Plugin defaults<br />
- There's no way to provide a standard set of defaults for plugins across a set of developers. The ${user.home}/build.properties file becomes a maintenance issue. It would be better to externalise or parameterise defaults.properties.</p>

<p>Installation<br />
- plugin:download is great, but an 'artifact:download' is needed as well.<br />
- plugin:update is also needed to pick up new releases of existing plugins with a confirmation before install. <br />
- installation should be to either a user-only or system directory.<br />
- Version clashes (e.g. multiple versions of a plugin) should be displayed during the build so that they can be corrected.<br />
- As the ${maven.home}/plugins dir is a single directory, clashes with plugin jar names seem inevitable, and it would seem better to structure the plugins dir like a repo with ${groupId}/plugins directories. e.g. all maven plugins go into ${maven.home}/plugins/maven/plugins, and plugins from sourceforge go into ${maven.home}/plugins/sourceforge/plugins<br />
- Plugin dependencies are not usually provided with plugins. The download/install process should fetch them all rather than waiting until later.</p>

<p>Unzipping<br />
- Plugins are automatically unzipped creating large numbers of directories and files in typically ${user.home}/.maven which are often left over on a new install causing issues</p>

<p>Caching<br />
- Plugins contents are cached into files in ${user.home}/.maven/plugins. Until rc3 this cache would often become corrupt over time with unpredictable results. Once rc3 is out we'll see how this goes. </p>

<p>Plugin classpaths<br />
- Plugins written in Jelly often have clashes with the libraries in use by Maven.  The classloaders need to be isolated.<br />
- Classes provided by Maven (ant junit etc) often require classes to be found in their classloader.<br />
- Plugins often have issues with jdk 1.3 and the xml classes.</p>

<p>JDK Differentiation<br />
- There's no easy way to specify dependencies for a project by jdk version (e.g. xml classes needed only for jdk13 etc)</p>

<p>Dependency specification<br />
- There's no way to specify for example a released junit > 3.8, a specific version is always required. Some way to specify 3.x or > 3 would make keeping up to date a lot easier, and specific versions are still required for repeatable build situations.</p>

<p>Plugin information<br />
- Once a plugin is installed, it would be nice to be able to dump info about the plugin (name, url, distribution site, authors, mailing lists etc....)</p>

<p>Goal naming<br />
- Plugins usually define goals with a standard prefix, e.g. myplugin:theGoal. Exceptions to this rule should be reported, and prefixes being reused by other plugins reported as well.</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-05-14T16:15:52+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000661_maven_10_rc2_uses_a_lot_less_memory.html">
<title>Maven 1.0 RC2 uses a lot less memory</title>
<link>http://blogs.codehaus.org/people/dion/archives/000661_maven_10_rc2_uses_a_lot_less_memory.html</link>
<description><![CDATA[<p>Today I moved a build machine from <a href="http://maven.apache.org">Maven</a> RC1 to RC2. </p>

<p>A multiproject build of 24 projects into a single EAR file (including non-container tests) used to allocate 154MB of memory.</p>

<p>It now uses 67MB to do the same thing.</p>

<p>Not optimal, but a swag load better.</p>

<p><strong>Update: Oh, and it also cut 10 minutes of the build time too </strong></p>

<p>Good work Brett!</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-03-25T15:42:17+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000625_websphere_and_maven.html">
<title>WebSphere and Maven</title>
<link>http://blogs.codehaus.org/people/dion/archives/000625_websphere_and_maven.html</link>
<description><![CDATA[<p>Recently I've been taking our automated build process (using CruiseControl) and getting it to integrate in with WebSphere 4 AppServer.</p>

<p>The <a href="http://maven-plugins.sourceforge.net/maven-was40-plugin/">was40 plugin</a> has been useful, and I've added a <b>generate-ejb-code</b> goal to it, which generates the code needed for the ejb jar to run in WAS.</p>

<p>The EJBDeploy tool in WAS is a very fragile beasty. I've had lots of NPEs due to invalid chunks of metadata in the various files WAS/WSAD uses. With some help from IBM support I've been able to identify the bad chunks and clean them up.</p>

<p>I'll hopefully have the generate-ejb-code goal all cleaned up and ready for general usage in the next couple of days.</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-03-03T10:41:50+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000623_netbeans_module_plugin_for_maven.html">
<title>Netbeans module plugin for Maven</title>
<link>http://blogs.codehaus.org/people/dion/archives/000623_netbeans_module_plugin_for_maven.html</link>
<description><![CDATA[<p><a href="http://mevenide.sourceforge.net/maven-nbm-plugin/index.html">This</a> is a maven plugin that helps building netbeans modules with Maven.</p>

<p>It's an offshoot of the ide development work. Go Milos</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-03-01T15:12:36+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000622_netbeans_gets_maven_support.html">
<title>NetBeans gets Maven support</title>
<link>http://blogs.codehaus.org/people/dion/archives/000622_netbeans_gets_maven_support.html</link>
<description><![CDATA[<p>The <a href="http://mevenide.sourceforge.net/">ide plugin team on Sourceforge</a> recently announced a <a href="http://mevenide.sourceforge.net/mevenide-netbeans-grammar/index.html<br />
">NetBeans module</a> that brings code completion for:<br />
- your project.xml file (currently POM version 3 only)<br />
- your maven.xml and plugin.jelly files. </p>

<p>The 0.1 release works and was tested with Netbeans 3.5.1.<br />
The 0.2 snapshot release works with the Netbeans 3.6 beta.</p>

<p>Cool.....</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-03-01T14:31:16+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000600_maven_resignation.html">
<title>Maven Resignation</title>
<link>http://blogs.codehaus.org/people/dion/archives/000600_maven_resignation.html</link>
<description><![CDATA[<p>Yesterday I resigned from the Project Management Committee of Maven and from here on in will take a definitely less active role in the project itself.</p>

<p>I hope that a 1.0 release happens sometime, but will happily remain using RC1 and  the 1.0 Branch.</p>

<p>Good luck guys.</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2004-02-11T10:19:35+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000246_antipatterns_and_ant.html">
<title>AntiPatterns and Ant</title>
<link>http://blogs.codehaus.org/people/dion/archives/000246_antipatterns_and_ant.html</link>
<description><![CDATA[<p>Went to <a href='http://www.softwaresummit.com/2003/speakers/dudney.htm'>Bill Dudney</a>'s talk on AntiPatterns using selected Jakarta Projects at CSS2003, and the Ant section was screaming to me: <strong>Use Maven</strong>.</p>

<p>It's amazing how many people still handcraft Ant build files for all the simple stuff that happens on every project.<br />
</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2003-11-07T16:40:35+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000245_doclets_and_documentation.html">
<title>Doclets and documentation</title>
<link>http://blogs.codehaus.org/people/dion/archives/000245_doclets_and_documentation.html</link>
<description><![CDATA[<p>Looking around at doclets after getting inspired by the JDK1.5 metadata facility.</p>

<p>Saw <a href="http://www.dbdoclet.org/">dbdoclet</a> which will produce docbook from javadoc comments, as well as class diagrams. It would be nice to integrate generating class diagrams into Maven.</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2003-11-07T16:36:00+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000211_onjava_article_on_maven.html">
<title>OnJava article on maven</title>
<link>http://blogs.codehaus.org/people/dion/archives/000211_onjava_article_on_maven.html</link>
<description><![CDATA[<p>See <a href="http://www.onjava.com/pub/a/onjava/2003/10/22/maven.html">this</a>, a fairly unemotional article for a change.</p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2003-10-24T14:13:13+10:00</dc:date>
</item>
<item rdf:about="http://blogs.codehaus.org/people/dion/archives/000204_installers_for_java_programs.html">
<title>Installers for Java Programs</title>
<link>http://blogs.codehaus.org/people/dion/archives/000204_installers_for_java_programs.html</link>
<description><![CDATA[<p>There's now an <a href="http://nsis.sourceforge.net">NSIS</a> plugin for maven, which automates the creation of a simple win32 installation program.</p>

<p>To use it, you can check it out of <a href="http://cvs.apache.org/viewcvs/maven-plugins/nsis">Maven Plugins CVS</a></p>]]></description>
<dc:subject>Maven</dc:subject>
<dc:creator>dion</dc:creator>
<dc:date>2003-10-15T19:08:51+10:00</dc:date>
</item>


</rdf:RDF>
