13.4. A basic build using quickStart

The freshStart target deletes the hackyCore_Build/build directory, completely recompiles the system, runs Checkstyle over the sources to ensure they are formatted correctly, repackages certain jar files, and other relatively time-consuming operations. In an incremental development scenario, you can save time by using the "quickStart" target, which does not delete the build/ directory, does not run Checkstyle, and can often avoid certain repackaging operations. Here's an example run of quickStart:

C:\svn\hackyCore_Build>ant -q quickStart
     [echo] (11:24:51) Completed hackyCore_Build.checkModuleAvailability
     [echo] (11:24:52) Completed hackyCore_Build.hotUndeployHackystat
     [echo] (11:24:54) Completed all.compile
     [echo] (11:24:59) Completed all.install.pre-sensorshell
     [echo] (11:25:05) Completed all.install.post-sensorshell
     [echo] (11:25:05) Completed hackyCore_Build.deployTestData
     [echo] (11:25:06) Completed hackyCore_Build.hotDeployHackystat
     [echo] (11:25:07) Completed hackyCore_Build.deploySoap

BUILD SUCCESSFUL
Total time: 21 seconds
Sending build result to Hackystat server... Done!

As you can see, the quickStart target took 21 seconds to rebuild and redeploy the system, while the freshStart system takes over 90 seconds or more.

As a developer, you need to balance the safety of doing freshStarts, which guarantee a clean environment and correctly formatted sources, with quickStarts, which are much faster in execution. We recommend that after each Subversion update of your sources, you do a freshStart followed by an all.junit, because if any problems suddenly emerge, then you can be reasonably confident that you have downloaded changes that break the build and it's not your fault. Once you've established a clean build and test of the system, you can switch to using quickStart. Before you commit any changes to Subversion, we strongly recommend that you run freshStart and all.junit, so that any formatting mistakes or other problems are caught. Of course, you must also be sure to 'svn add' any new files or directories you've created that the build depends upon as part of your commit.