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

DM Smith (JIRA) jira at crosswire.org
Mon Dec 6 05:57:34 MST 2010


    [ http://www.crosswire.org/bugs/browse/JS-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13651#action_13651 ] 

DM Smith commented on JS-140:
-----------------------------

Chris Burrell wrote on jsword-devel in response:
<quote>
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
<quote>

> 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

        



More information about the jsword-devel mailing list