Add ability to disable the building of particular DSpace modules/interfaces 
from source code
--------------------------------------------------------------------------------------------

                 Key: DS-791
                 URL: https://jira.duraspace.org/browse/DS-791
             Project: DSpace
          Issue Type: Improvement
          Components: DSpace API
    Affects Versions: 1.7.0
            Reporter: Tim Donohue
            Assignee: Tim Donohue
             Fix For: 1.8.0
         Attachments: dspace-modules-pom.patch

For developers (and anyone who frequently rebuilds DSpace), it would be nice to 
have the ability to *disable* the building of DSpace modules which you are not 
currently using.   

For example, an institution may only be actively using the XMLUI, Discovery and 
SWORD.  But, when they run 'mvn package', it will *always* rebuild all 
modules/interfaces (even those which they don't really care about).

A simple way to allow institutions to disable the building of specific modules 
is to provide consistent "module profiles" across all our POMs, which can then 
be disabled from the command-line using Maven's "-P" option along with the "!" 
option (requires Maven 2.1 or above).   For example, if you have profiles with 
IDs of "dspace-lni" and "dspace-oai", you can disable them by calling Maven as 
follows:

mvn package -P !dspace-lni,!dspace-oai

We currently already provide various interface-based profiles in the 
[dspace-src]/dspace/pom.xml.   However, the [dspace-src]/dspace/modules/pom.xml 
*always* defaults to building/installing all modules.

Simply put, with a small tweak to [dspace-src]/dspace/modules/pom.xml to add 
matching profiles (with the same IDs as in [dspace-src]/dspace/pom.xml), we can 
make things a lot easier on developers.    See the attached patch for more 
details of the changes.  This patch was built against current Trunk (r5997).

With the patch applied, here's what build options are available:
* By default, all DSpace modules are still built when running 'mvn package' on 
the full source code
* If a developer chooses, he/she can disable the building of specific DSpace 
modules using the Maven "-P" option.  He/She just needs to provide a listing of 
the modules to disable (see example above).  The full list of modules is 
currently:
     * dspace-xmlui
     * dspace-lni
     * dspace-oai
     * dspace-jspui
     * dspace-sword
     * dspace-solr

Suggestions & comments are welcome.  If others agree that this is a useful 
tweak to our current build process, I will commit it to Trunk for the 1.8.0 
release.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://jira.duraspace.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to