[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