> I am a maven beginner. We use maven to build and manage our > project. Right now we want to build a nightly build system > that will automatically build, deploy, run all the tests of > the project at least once a day. > Can anyone give me some ideas for it?
I use CruiseControl for this (http://cruisecontrol.sourceforge.net/). It has acceptable Maven support. My only real problem with this is that I want the daily build to happen whether it needs to or not, and the CruiseControl philosophy seems to be that things should only be built when code has change. I sort of hacked around this by configuring the list of files CruiseControl looks at to see if any changes happened to look at the CruiseControl's own log file, which changes when the check for changes starts, thus guaranteeing that the build's always happen. A typical CruiseControl script for us looks like this (note that we use Perforce for source control; the CVS config is slightly different). This script compiles a project called "dispatcher". Note that the goal lists contain a lot of goals from a custom plugin, but you can put whatever goals you want: <cruisecontrol> <!-- ******* dispatcher ******* --> <project name="dispatcher"> <!-- Events that get executed all of the time when a build is started, before the actual build begins --> <bootstrappers> <currentbuildstatusbootstrapper file="logs/current-dispatcher.txt"/> <p4bootstrapper path="//depot/dispatcher/main/project.xml" p4port="p4depot.tagaudit.com:1666" p4user="p4daemon" p4client="linux-cruise"/> <p4bootstrapper path="//depot/dispatcher/main/project.properties" p4port="p4depot.tagaudit.com:1666" p4user="p4daemon" p4client="linux-cruise"/> <p4bootstrapper path="//depot/dispatcher/main/maven.xml" p4port="p4.domain.com:1666" p4user="p4daemon" p4client="linux-cruise"/> </bootstrappers> <!-- A set of data to look at to see if there have been changes and, therefore, a new build is required. --> <modificationset quietperiod="0"> <!-- Use the always changing log to force a build --> <filesystem folder="cruisecontrol.log"/> <p4 port="p4.domain.com:1666" user="p4daemon" client="linux-cruise" view="//depot/dispatcher/main/..."/> </modificationset> <!-- The build process. Interval is in seconds. --> <schedule interval="300"> <maven time="2300" mavenscript="/opt/maven/bin/maven" projectfile="/home/build/cruise/checkout/dispatcher/main/project.xml" goal="tag:bad-build-icon tag:checkout tag:clean|tag:build|tag:site tag:good-build-icon"/> </schedule> <!-- Output --> <publishers> <currentbuildstatuspublisher file="logs/current-dispatcher.txt"/> <email buildresultsurl="http://build.tagaudit.com:8080/cruisecontrol/buildresults/d ispatcher/" defaultsuffix="@tagaudit.com" mailhost="mail" reportsuccess="always" returnaddress="lward" subjectprefix="[BUILD]"> <always address="lward"/> <failure address="lward"/> <success address="lward"/> </email> </publishers> </project> </cruisecontrol> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
