[Building Sakai] SAK-17135: core-deploy pom

Anthony Whyte arwhyte at umich.edu
Wed Oct 7 12:54:44 PDT 2009


I've written a pom I call core-deploy that I want to commit to the  
sakai/trunk project that meets two goals:

1) provides a single, aggregated mechanism for deploying non-kernel  
projects to Tomcat that are no longer part of the Sakai trunk build  
(e.g., common, search, soon others)
2) provides a Maven "experimental" profile (-Pexperimental) that  
allows for additional capabilities to be added to a Sakai trunk build  
for experimental/evaluative purposes (e.g., messageforums, sitestats,  
soon others)

I want to commit this wee beastie.

POM DESIGN AND BASE POM PROFILE MODIFICATIONS

See http://jira.sakaiproject.org/browse/SAK-17135

IMPLEMENTATION

Implementing core-deploy involves:

1) adding core-deploy to sakai/trunk project
2) adding an "experimental" profile to the Sakai trunk base pom (see  
below, it is not an exact copy of "full", e.g., msgcntr is dropped as  
a module)
3) tweeking the Sakai trunk base pom "full" profile, adding  
<module>core-deploy</module> and removing common-deploy and search- 
deploy
4) deleting the redundant common-deploy and search-deploy poms in  
sakai/trunk.

IMPACT ON TRUNK DEVELOPERS

Minimal.  After I commit my changes (and alert you), perform a fresh  
checkout of trunk to pick up "core-deploy" and the base pom edits.   
Delete org/sakaiproject/common-deploy and org/sakaiproject/search- 
deploy from your .m2 repo.

I've tested both core-deploy profiles locally and it performs as  
expected; the full profile adds common and search to the deployment,  
while "experimental" adds common, messageforms, search and sitestats  
to the deployment.

BACKGROUND

Maven provides an assembly plugin that we use for project released  
independently of Sakai (such as the Kernel) in order to assemble and  
deploy binary archives to Tomcat. The resulting "tomcat-overlay"  
archive is mapped internally to the locations of Sakai artifacts in  
Tomcat (e.g., api and help jars in shared/lib, impl jars in / 
components, etc.). Sakai builds invoke the kernel's assembly plugin by  
including a "kernel-deploy" module in its build profiles. kernel- 
deploy adds a kernel-assembly dependency that handles the packaging of  
kernel artifacts and any required third-party dependencies for  
deployment to Tomcat. Creating such assemblies is a fairly  
straightforward process and one that can be replicated quite easily  
across projects.

David Horwitz, Steve Swinsburg and I have been working on setting up a  
number of projects for independent releases (e.g., message-forums,  
search, sitestats) using the Maven release plugin as well as  
repackaging a number of related projects (e.g., gradebook, cm and  
sections services repackaged as edu-services). Part of this work  
involves the creation of assemblies and a bridging "deploy' pom that  
we then wire into Sakai's build profiles in the same manner as  
outlined above for the kernel.

The core-deploy pom aggregates all the work of non-kernel deploy poms  
into a single pom. Additionally it also includes "full" and  
"experimental" build profiles; the latter provides a mechanism for  
adding additional capabilities to Sakai trunk builds such as message- 
forums and sitestats (to be followed by basiclti) that can be included  
by simply invoking the -Pexperimental profile when building and  
deploying Sakai trunk. The experimental profile is of particular use  
to me (and hopefully others) since it provides a simple mechanism for  
deploying projects being evaluated for potential inclusion in future  
releases of Sakai. The pom can easily be extended to include other  
core or experimental/evaluative projects that have been prepped for  
use with the release plugin and implemented the assembly plugin.

Objections?

Anthony

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20091007/a27af70e/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2417 bytes
Desc: not available
Url : http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20091007/a27af70e/attachment.bin 


More information about the sakai-dev mailing list