alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

<project name="Build All Elements" default="main">

<!-- ===================================================================== -->
<!-- Global properties.  See the build.properties for information on -->
<!-- the properties which callers can control. -->
<!-- ===================================================================== -->
<property name="builder" location="${user.dir}"/>
<property name="builderDirectory" location="${builder}"/>
<property name="buildProperties" location="${builder}/build.properties"/>
<property file="${buildProperties}"/>
<property name="customTargets" location="${builderDirectory}/customTargets.xml"/>
<property name="genericTargets" location="genericTargets.xml"/>

<!-- ===================================================================== -->
<!-- main entry point to setup, fetch, generate, build etc. Use -->
<!-- the customTargets.xml to modify the build behaviour. -->
<!-- ===================================================================== -->

<!-- ******* add in the descriptions for each of the top level targets to teh target decl -->
<target name="main" description="the main build target">	
  	<antcall target="preBuild" /> 
 	<antcall target="fetch" />
	<antcall target="generate" /> 
	<antcall target="process" /> 
	<antcall target="assemble" />
	<antcall target="package" />
	<antcall target="postBuild" />
</target>

<!-- ===================================================================== -->
<!-- Steps to do before starting the build.  Typical setup includes -->
<!-- fetching the map files and building the directory.  -->
<!-- ===================================================================== -->
<target name="preBuild">
	<mkdir dir="${buildDirectory}" />
	<ant antfile="${customTargets}" target="preSetup" /> 
	<ant antfile="${customTargets}" target="getMapFiles" /> 
	<concat destfile="${buildDirectory}/directory.txt" fixlastline="yes">
		<fileset dir="${buildDirectory}" includes="maps/**/*.map"/>
	</concat>
	<ant antfile="${customTargets}" target="postSetup" />
</target>

<!-- ===================================================================== -->
<!-- Fetch the elements identified in the customTargets -->
<!-- ===================================================================== -->
<target name="fetch" unless="skipFetch">
	<ant antfile="${customTargets}" target="preFetch"/>
	<!-- Generates and then execute the fetch scripts for each build element-->
	<ant antfile="${customTargets}" target="allElements">
		<property name="target" value="fetchElement" />
	</ant>
	
	<ant antfile="${customTargets}" target="postFetch"/>
</target>

<!-- ===================================================================== -->
<!-- Generate the build scripts for each element identified in the customTargets -->
<!-- ===================================================================== -->
<target name="generate">
	<ant antfile="${customTargets}" target="preGenerate"/>
	<!-- Generate the build.xml for each build element-->
	<ant antfile="${customTargets}" target="allElements">
		<property name="target" value="generateScript" />
	</ant>
	<ant antfile="${customTargets}" target="postGenerate"/>	
</target>

<!-- ===================================================================== -->
<!-- Run the build scripts for each element identified in the customTargets -->
<!-- ===================================================================== -->
<target name="process">
	<!-- Run custom tasks before processing, i.e. creating source build zip files -->
	<ant antfile="${customTargets}" target="preProcess" />

	<!-- Process all of the build elements-->
	<ant antfile="${customTargets}" target="allElements">
		<property name="target" value="processElement" />
	</ant>

	<!-- Run custom tasks after compiling, i.e. reporting compile errors -->
	<ant antfile="${customTargets}" target="postProcess" />
</target>

<!-- ===================================================================== -->
<!-- Assemble the build elements into final distributions -->
<!-- ===================================================================== -->
<target name="assemble">
	<ant antfile="${customTargets}" target="preAssemble"/>
	<ant antfile="${customTargets}" target="allElements">
		<property name="target" value="assembleElement"/>
	</ant>
	<ant antfile="${customTargets}" target="postAssemble"/>	
</target>

<!-- ===================================================================== -->
<!-- Package the build elements into final distributions -->
<!-- ===================================================================== -->
<target name="package" if="runPackager">
	<ant antfile="${customTargets}" target="prePackage"/>
	<ant antfile="${customTargets}" target="allElements">
		<property name="target" value="packageElement"/>
	</ant>
	<ant antfile="${customTargets}" target="postPackage"/>	
</target>

<!-- ===================================================================== -->
<!-- Do any steps required after the build (e.g., posting, testing, ...) -->
<!-- ===================================================================== -->
<target name="postBuild">
	<ant antfile="${customTargets}" target="postBuild" />
</target>

<!-- ===================================================================== -->
<!-- Clean the build elements.  This target is here as an entry -->
<!-- point to the customTargets.  It is not called directly in the normal -->
<!-- course of events. -->
<!-- ===================================================================== -->
<target name="clean">
  <ant antfile="${customTargets}" target="allElements">
     <property name="target" value="cleanElement"/>
  </ant>
</target>

</project>
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.