I myself am a Maven fan, and let me explain why. From one pom file (or set of poms), we are able to:<div><ul><li>do the dependency management </li><li>exclude jar files and binary files from the source code repository</li>
<li>in one command build, test, label/tag and release code</li><li>automatically maintain the versioning system</li><li>generate Eclipse config with all the relevant dependencies resolved, etc.(mvn eclipse:eclipse creates the config based on your pom and jars it has downloaded into your local repository)</li>
<li>generate all the common configuration: formatters, eclipse preferences, checkstyle, findbugs, pmd config for all users using eclipse</li><li>it's very portable</li><li>follows conventions which means that a lot of things are already done for you if things are in the right place</li>
<li>can download source/javadoc for all the relevant dependencies and tie it in nicely to eclipse</li><li>cool reporting capabilities too</li></ul><div>So in summary, projects that use maven can help development environment setup vastly. </div>
<div><br></div><div><b>setup eclipse with checkstyle, pmd, findbugs, source code and javadocs dependencies</b>: mvn eclipse:clean eclipse:eclipse </div><div><b>build</b>: mvn clean install</div><div> </div><div>I'd be very happy to try setting up part/most of that for you guys (have started on the JSword stuff), but as I started found that it didn't really build (partly due to the refactoring, but also has dependencies missing in the poms). For most developers who are new to maven, what we do at work is have a prefconfigure maven installation to unzip, and instructions on how to set up 2 environment variables. Then the mvn clean install command does the rest. (We also zip up our eclipse installation so that new people don't need to install all the plugins)</div>
<div><br></div><div>Unfortunately, using several ways of building though tends to mean that some things get left behind. So I'm kind of reluctant at the same time (although I have started) since next time refactoring is done, or dependencies are added, things might get missed.</div>
<div><div><br></div><div>Cheers</div><div>Chris</div><div><br></div><div><br></div><div><br></div><div>On 6 December 2010 10:01, Martin Denham <span dir="ltr"><<a href="mailto:mjdenham@gmail.com">mjdenham@gmail.com</a>></span> wrote:</div>
<div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">There were advantages in having the jars under the jar folder, where they were before. There are only a few jars and it means the eclipse project works instantly after checkout. Will the jars still be there?<div>
<div></div><div class="h5"><br><br><div class="gmail_quote">
On 6 December 2010 05:33, DM Smith (JIRA) <span dir="ltr"><<a href="mailto:jira@crosswire.org" target="_blank">jira@crosswire.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
[ <a href="http://www.crosswire.org/bugs/browse/JS-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13646#action_13646" target="_blank">http://www.crosswire.org/bugs/browse/JS-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13646#action_13646</a> ]<br>
<div><br>
DM Smith commented on JS-140:<br>
-----------------------------<br>
<br>
</div>I've figured out how<br>
* to include only the stuff that is wanted. Now it only brings in the jar itself and the source jar. It just took adding conf="default->master,sources" to the dependency.<br>
* to specify a different location for the cache. Now at jsword/ivy.<br>
* to put the jars in a useful place: jsword/lib (this solves the caching problem)<br>
* to blend jars we can't get via ivy, with those from ivy<br>
<br>
This introduced a ripple effect and the build files (core.xml and jsword's build.xml) needed to change:<br>
* changed ${target.jar} to point to "lib"<br>
* uncommented prepare.extra to use it in jsword's build.xml to load dependencies.<br>
* made clean in core.xml clean out the ${target.jar} directory<br>
<br>
What's left:<br>
clean up the jsword-web documentation explaining how to checkout the project and use it within Eclipse.<br>
<br>
The big gotcha, upon checkout one must run ant in the jsword project. Otherwise, Eclipse (and probably other IDE's) will complain. If Eclipse is run first, then jsword will have to be refreshed after the run.<br>
<br>
FYI, I just noticed that there is an ant task to convert an ivy definition to a maven pom.<br>
<div><div></div><div><br>
<br>
<br>
<br>
> Use Ivy to manage JSword's dependencies.<br>
> ----------------------------------------<br>
><br>
> Key: JS-140<br>
> URL: <a href="http://www.crosswire.org/bugs/browse/JS-140" target="_blank">http://www.crosswire.org/bugs/browse/JS-140</a><br>
> Project: JSword<br>
> Issue Type: Improvement<br>
> Affects Versions: 1.6<br>
> Reporter: DM Smith<br>
> Assignee: DM Smith<br>
> Priority: Minor<br>
><br>
> Ivy is an Apache component that is tightly integrated with Ant that will grab dependent jars and provide them to the project.<br>
> This would greatly reduce the SVN repository size going forward as we would no longer need to house these libraries.<br>
<br>
--<br>
This message is automatically generated by JIRA.<br>
-<br>
If you think it was sent incorrectly contact one of the administrators: <a href="http://www.crosswire.org/bugs/secure/Administrators.jspa" target="_blank">http://www.crosswire.org/bugs/secure/Administrators.jspa</a><br>
-<br>
For more information on JIRA, see: <a href="http://www.atlassian.com/software/jira" target="_blank">http://www.atlassian.com/software/jira</a><br>
<br>
<br>
<br>
_______________________________________________<br>
jsword-devel mailing list<br>
<a href="mailto:jsword-devel@crosswire.org" target="_blank">jsword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>
</div></div></blockquote></div><br>
</div></div><br>_______________________________________________<br>
jsword-devel mailing list<br>
<a href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>
<br></blockquote></div><br></div></div></div>