I'm trying to determine the "right" way to use Maven in our continuous integration environment. Here's our basic process:
1. Code changes are made and checked in to SVN. 2. Cruise Control detects the change and kicks off a build, executing all the tests. This is a local build (maven clean install). 3. Once a day, or on demand, CC kicks off a numbered build (maven clean deploy). This numbered build is tested by QA. So much for the good; now for the bad: We have opposing camps. One camp uses the deploy plugin as illustrated above. The other camp, on a separate project, is executing the above process except that instead of using the deploy plugin, they are using the release plugin. As far as I can see, the use of the release plugin in step 3 goes against its intent. The release plugin is meant for a release to a customer, not for something that happens frequently like a nightly build. Further, the use of the release plugin in this manner restricts the use of cross-project libraries to released versions, since the release plugin enforces that the pom does not depend on any snapshots. I'd like to get the thoughts of the group on this. I may be missing something but I'd far rather use the deploy plugin for nightly builds and the release plugin for packaging the application for release to our customers. Am I wrong? Thanks, Kevan. Kevan Dunsmore Senior Software Engineer SABRIX Inc t: 503.924.4908 f: 503.620.5756 This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information that is protected from disclosure. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message and any attachments.
