Hi Jean-Yves, Thanks for taking time to provide a concrete example of how this Maven support could work for Restlet building.
I agree that usage of Maven would have several nice advantages like using a common structure facilitating contribution from new developers, having a more compact build script, all POM-based features, easier dependency management, etc. However, Maven does come with its issues and a certain level of complexity. The management of dependencies can become difficult as well (for example when you rely on artifact not available in public Maven repositories or without Internet connectivity). I also have my issues with the usability of the Maven sites layout which is standardized but hard to navigate: where are those damn Javadocs!! :). For this I prefer the custom Restlet.org web site that we produce using custom Ant scripts. In the past, I also encountered many issues with Eclipse integration, the flat structure required by Eclipse (this you were able to solve!) and the fact that Eclipse projects generated from the POM aren't OSGi plugins (with proper plugin dependencies instead). I see that Tycho might now be able to solve those points which sounds promising. Also, I recently saw a demonstration of Eclipse Buckminster and was impressed by its clever design: http://www.eclipse.org/buckminster/. It is comparable to Maven and Ivy and can plays nicely with Maven repositories for dependency management, but also with raw download sites. Even though I'm still not personally convinced of making such a move, I have created a RFE to keep track of it: "Reconsider using Maven for build" http://restlet.tigris.org/issues/show_bug.cgi?id=698 I have targeted it for Restlet 2.0 to give it time to mature. Let's continue the debate! Best regards, Jérôme Louvel -- Restlet ~ Founder and Lead developer ~ http://www.restlet.org Noelios Technologies ~ Co-founder ~ http://www.noelios.com -----Message d'origine----- De : Raif S. Naffah [mailto:[email protected]] Envoyé : dimanche 28 décembre 2008 09:08 À : [email protected] Cc : JY Objet : Re: Just a test: Full compatibility with the Maven build system hello JY, this is a good effort and i'm willing to help in the migration if the project maintainers are willing to make the switch. On Thursday 25 December 2008 03:04:11 JY wrote: > Here a exemple of Restlet Maven Site generated: > http://jycronier.free.fr/tmp/restlet-maven-site/ > > > - Global JavaDoc > > http://jycronier.free.fr/tmp/restlet-maven-site/apidocs/index.html > > > - Code coverage (Cobertura) > > Example with org.restlet Core API: > http://jycronier.free.fr/tmp/restlet-maven-site/org.restlet/cobertura/ind >ex.html (This report isn't representative because Unit Tests aren't move > in their respective projects) > > > - Static analysis of code (PDM) > > Example with org.restlet Core API: > http://jycronier.free.fr/tmp/restlet-maven-site/org.restlet/pmd.html > > > - HTML cross reference sources > > http://jycronier.free.fr/tmp/restlet-maven-site/xref/index.html > > > - Global Dashboard of results > > http://jycronier.free.fr/tmp/restlet-maven-site/dashboard-report.html > (This report isn't representative because Unit Tests aren't move in > their respective projects) > > > I will remove these pages in very few months > > JY a écrit : > > "Restlet" uses "Ant" to build the entire project and modules. And it > > works pretty well! :-) > > > > It's very difficult for me to compare actual huge and complex Restlet > > Ant build system with a Maven's one because I never use ant for big > > projects like Restlet. And I know too much of Maven to be objective! ;) > > So, let's the community have an opinion. > > > > So, I begin a little migration of project's structure to be more > > compliant: - remove number version on extension project folder > > (ex: org.restlet.ext.atom_1.0 -> org.restlet.ext.atom) > > - Move all Java source from /src to /src/main/java > > - Move all other than Java source from /src to /src/main/resources > > - Create a parent pom.xml to define all common properties > > (specially for the "maven site" generation) > > - Move pom from build/tmpl/poms to their respective project > > - Copy (quick and dirty way) properties to pom.xml > > > > Now, simple command "mvn package" make packaging of each extensions. > > In attachments, you can find an export of modified project (only folder > > "modules" from commit 4070) and the "mvn site" will generate > > automatically from sources ("mvn site") : > > - Global JavaDoc > > - Code coverage (Cobertura) > > - Static analysis of code (PDM) > > - HTML cross reference sources > > - Global Dashboard of results > > - Etc … > > > > Other works can be performed: > > - Use of Maven Tycho > > (http://docs.codehaus.org/display/M2ECLIPSE/Tycho+user+docs) : > > * Automatic build of OSGi bundle > > * No need of dependency declarations in pom.xml > > (MANIFEST.MF is enough) > > - Move Unit tests under each modules > > - Finish moving no-Java files to: src/resources > > - Continuous integration (ex: Continuum, Cruise Control or Hudson?) > > > > > > > > > > > > > > Merry Christmas!!! :) > > > > ------------------------------------------------------ > > http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId= > >991625 > > ------------------------------------------------------ > http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=99 >1696 -- cheers; rsn ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=994219 ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=994334

