<div>Hi everyone,</div>
<div> </div>
<div>I've recently had to use Maven (<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://maven.apache.org/" target="_blank">http://maven.apache.org</a>) for a Java project, and I was quite impressed with how easy it is to create and maintain a project with this tool.
</div>
<div> </div>
<div>Basically, it lets you create an empty project (with separate source and resources directories for main files, test files, web site files, etc.) and test, build, package or deploy it (among many other things, like web site generation). It takes care of your dependencies (updating them when necessary). It also integrates nicely with various IDEs such as Eclipse (it's just a CLI after all), with Subversion/CVS tools, bug trackers, continuous integration tools (like Continuum), etc. Just take a look at the Maven web site for a complete list of features anyway.
</div>
<div> </div>
<div>Most importantly, you can extend it with plugins (written in Java), so I've been toying with the idea of an Erlang plugin, for well... Erlang projects.</div>
<div> </div>
<div>Things that such a plugin could provide :</div>
<div>- "archetype" project creation (creates a typical OTP-like erlang project directory structure and basic files - a way to enforce good pratices in this area ?)</div>
<div>- dependencies management (automatic update from a repository, transitive dependencies, etc.)</div>
<div>- run the entire test suite (using EUnit)</div>
<div>- generate various reports and the project web site (edoc, eunit results, changelogs, etc.)</div>
<div>- project compilation</div>
<div>- project deployment (beam files are packaged and deployed with scp, ftp or DAV)</div>
<div>- dynamic code loading (typical Erlang feature of course. You could load the compiled code on one or more nodes, on your integration or production environment, etc.)</div>
<div>- etc ?</div>
<div> </div>
<div>I wonder if there are other Maven users among us. Anyway feedback and ideas would be greatly appreciated (maybe something like this already exists, or maybe the entire idea is worthless...). And when (if ?) I find some time I'll work on it.
</div>
<div> </div>
<div>Thanks</div>
<div> </div>
<div> </div>
<div>Olivier</div>