[jsword-devel] [JIRA] Commented: (JS-140) Use Ivy to manage JSword's dependencies.

Chris Burrell christopher at burrell.me.uk
Mon Dec 6 04:37:02 MST 2010


I myself am a Maven fan, and let me explain why. From one pom file (or set
of poms), we are able to:

   - do the dependency management
   - exclude jar files and binary files from the source code repository
   - in one command build, test, label/tag and release code
   - automatically maintain the versioning system
   - 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)
   - generate all the common configuration: formatters, eclipse preferences,
   checkstyle, findbugs, pmd config for all users using eclipse
   - it's very portable
   - follows conventions which means that a lot of things are already done
   for you if things are in the right place
   - can download source/javadoc for all the relevant dependencies and tie
   it in nicely to eclipse
   - cool reporting capabilities too

So in summary, projects that use maven can help development environment
setup vastly.

*setup eclipse with checkstyle, pmd, findbugs, source code and javadocs
dependencies*: mvn eclipse:clean eclipse:eclipse
*build*: mvn clean install

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)

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.

Cheers
Chris



On 6 December 2010 10:01, Martin Denham <mjdenham at gmail.com> wrote:

> 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?
>
>
> On 6 December 2010 05:33, DM Smith (JIRA) <jira at crosswire.org> wrote:
>
>>
>>    [
>> http://www.crosswire.org/bugs/browse/JS-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13646#action_13646]
>>
>> DM Smith commented on JS-140:
>> -----------------------------
>>
>> I've figured out how
>> * 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.
>> * to specify a different location for the cache. Now at jsword/ivy.
>> * to put the jars in a useful place: jsword/lib (this solves the caching
>> problem)
>> * to blend jars we can't get via ivy, with those from ivy
>>
>> This introduced a ripple effect and the build files (core.xml and jsword's
>> build.xml) needed to change:
>> * changed ${target.jar} to point to "lib"
>> * uncommented prepare.extra to use it in jsword's build.xml to load
>> dependencies.
>> * made clean in core.xml clean out the ${target.jar} directory
>>
>> What's left:
>> clean up the jsword-web documentation explaining how to checkout the
>> project and use it within Eclipse.
>>
>> 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.
>>
>> FYI, I just noticed that there is an ant task to convert an ivy definition
>> to a maven pom.
>>
>>
>>
>>
>> > Use Ivy to manage JSword's dependencies.
>> > ----------------------------------------
>> >
>> >                 Key: JS-140
>> >                 URL: http://www.crosswire.org/bugs/browse/JS-140
>> >             Project: JSword
>> >          Issue Type: Improvement
>> >    Affects Versions: 1.6
>> >            Reporter: DM Smith
>> >            Assignee: DM Smith
>> >            Priority: Minor
>> >
>> > Ivy is an Apache component that is tightly integrated with Ant that will
>> grab dependent jars and provide them to the project.
>> > This would greatly reduce the SVN repository size going forward as we
>> would no longer need to house these libraries.
>>
>> --
>> This message is automatically generated by JIRA.
>> -
>> If you think it was sent incorrectly contact one of the administrators:
>> http://www.crosswire.org/bugs/secure/Administrators.jspa
>> -
>> For more information on JIRA, see: http://www.atlassian.com/software/jira
>>
>>
>>
>> _______________________________________________
>> jsword-devel mailing list
>> jsword-devel at crosswire.org
>> http://www.crosswire.org/mailman/listinfo/jsword-devel
>>
>
>
> _______________________________________________
> jsword-devel mailing list
> jsword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/jsword-devel/attachments/20101206/e47924c2/attachment-0001.html>


More information about the jsword-devel mailing list