Wednesday, May 26, 2010

Pausing an ANT Build on error

Quite a few projects have multiple interlinked build scripts for creating a product build. For instance a complete build might involve compilation of the code, packaging the properties/config files, UTF-8 conversions, documentation generation, installer generation, etc. Each of these might be separate ant scripts or commands. If a build fails anywhere in-between it would be great if the build process is PAUSED so that one can easily see the exact failure point.

One way to achieve this if you are using ANT, is to modify the ant.bat file that ships with ant in the bin folder.

Just below this line:

:runAntWithClasspath
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -cp "%CLASSPATH%" %ANT_CMD_LINE_ARGS%

Add the following lines:

if %ERRORLEVEL% == 1 (
ECHO =============================
echo. Ant Build Error
Echo Return Code = %ERRORLEVEL%
ECHO ==============================
PAUSE
)