Perhaps someone can point me at some documentation that I've missed that deals with structuring interrelated projects for development and production.

At the moment, I have a large system that is built with Ant that I'd like to move to Maven and I am not sure how I should structure my project.xml and maven.xml files. The system looks like this:

root
subprojectA -- no dependencies -- produces a jar.
subprojectB -- depends on subprojectA -- produces a jar.
subprojectC -- depends on subprojectA and SubprojectB -- produces a jar.
subprojectD -- depends on A, B, and C. produces a jar, and a war depending on deployment options.



Right now developers checkout the complete source tree and do a master build. They can also do subproject builds because each subproject knows its dependencies. I'd like them to be able to only check out the subproject that they are working on and have their build pickup the latest jars from the nightly build.


The goals I want to have are:

1. Nightly build is triggered by changes in CVS. Result of the nightly build will be updated jar files in the local repository. Currently using Anthill for this and I have an Ant script that runs maven since the current Anthill calls Ant directly. This Nightly build would also create the internal site.

2. Developer builds should fetch updated jars from the local repository if necessary.

3. A Production release build that produces jars named with the label used to label the sources in CVS.

4. A production release goal that takes the results of goal 3, creates a distribution where the labels have been removed from the jars so that the scripts that run some of the applications can hardwire their classpaths as opposed to building them dynamicly.

I think I understand that I can use the SNAPSHORT attribute to get the first 2 goals but I am unclear on the procedure needed for goals 3 and 4.

Any advice on this topic.

--
Erik Husby
Team Lead for Software Quality Automation
Genome Center at MIT
Rm. 2192
320 Charles St
Cambridge, MA 02141-2023
mobile: 781.354.6669
office: 617.258.9227
[EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to