| <project |
| name="AggregationTasks" |
| basedir="." |
| default="default"> |
| <property |
| environment="env"/> |
| <!-- |
| This property file name is itself a property, so it can be overridden |
| on one machine versus another. We do it this way, instead of just specifying |
| -propertyFile on command line, so that the property values can be "nested" |
| in other property values and evaluated lazily. |
| --> |
| |
| <fail unless="release" message="release must be specified for this script, such as -Drelease=juno" /> |
| |
| <property |
| name="aggrPropertyFile" |
| value="aggr.properties"/> |
| |
| <property |
| file="${aggrPropertyFile}"/> |
| |
| <!-- |
| unrewriteMapsLine is a variable, but should never have to be chagned for current sim rel |
| We make the strong assumption that, in *.b3aggrcon file, this string occurs only in |
| repository location attributes. If not true, more complex parsing/replacement would be required. |
| --> |
| |
| <property |
| name="commonRepositoryDownloadURLValue" |
| value="http://download.eclipse.org"/> |
| |
| <target |
| name="installAggregatorAndTools" |
| depends="init, savePrevious,installAggregator,installRelengTools"> |
| |
| <echo |
| message="Installed fresh Eclipse, Aggregator, and Tools"/> |
| |
| </target> |
| |
| <target |
| name="installAggregator" |
| depends="init, savePrevious"> |
| <property |
| name="APP_NAME" |
| value="org.eclipse.equinox.p2.director"/> |
| <property |
| name="OTHER_ARGS_AGG" |
| value="-metadataRepository http://download.eclipse.org/modeling/emft/b3/headless-3.7/ -artifactRepository http://download.eclipse.org/modeling/emft/b3/headless-3.7/ -installIU org.eclipse.b3.aggregator.engine.feature.feature.group"/> |
| <!-- usually do not need the version, just to "get the latest" from |
| buckminster builder site -version 1.0.0.v20090415-1651 --> |
| <property |
| name="VM_ARGS" |
| value="-vmargs -Xmx256m"/> |
| |
| |
| <mkdir |
| dir="${ECLIPSE_HOME}"/> |
| |
| <untar |
| compression="gzip" |
| overwrite="true" |
| src="${FULL_FILENAME}" |
| dest="${ECLIPSE_HOME}"/> |
| |
| <!-- weird this chmod is required? probably ant bug --> |
| <chmod |
| file="${ECLIPSE_HOME}/eclipse/eclipse" |
| perm="ugo+x" |
| verbose="true"/> |
| |
| <!-- and now get latest --> |
| <exec |
| executable="${eclipseExecutable}" |
| dir="${basedir}" |
| failonerror="true"> |
| <arg |
| line="-data ${eclipseWorkspace} -debug -nosplash --launcher.suppressErrors -vm ${JAVA_EXEC_DIR} -application ${APP_NAME} ${OTHER_ARGS_AGG} ${VM_ARGS}"/> |
| </exec> |
| </target> |
| <target |
| name="installTests" |
| depends="init, savePreviousTest"> |
| <property |
| name="APP_NAME" |
| value="org.eclipse.equinox.p2.director"/> |
| |
| <!-- usually do not need the version, just to "get the latest" from |
| buckminster builder site -version 1.0.0.v20090415-1651 --> |
| <property |
| name="VM_ARGS" |
| value="-vmargs -Xmx256m"/> |
| |
| |
| <mkdir |
| dir="${ECLIPSE_HOME_TEST}"/> |
| |
| <untar |
| compression="gzip" |
| overwrite="true" |
| src="${FULL_FILENAME}" |
| dest="${ECLIPSE_HOME_TEST}"/> |
| |
| <!-- weird this chmod is required? probably ant bug --> |
| <chmod |
| file="${ECLIPSE_HOME_TEST}/eclipse/eclipse" |
| perm="ugo+x" |
| verbose="true"/> |
| |
| <!-- get raw files from git --> |
| |
| <echo |
| message=" removing previous ${BRANCH_TESTS}.zip if it exists, in ${BUILD_HOME}"/> |
| |
| <delete file="${BUILD_HOME}/${BRANCH_TESTS}.zip" failonerror="false" /> |
| |
| <echo |
| message=" getting ${CGITURL}/${RELENG_TESTS}.git/snapshot/${BRANCH_TESTS}.zip to ${BUILD_HOME}" /> |
| |
| <get src="${CGITURL}/${RELENG_TESTS}.git/snapshot/${BRANCH_TESTS}.zip" dest="${BUILD_HOME}/${BRANCH_TESTS}.zip" verbose="true" /> |
| |
| <unzip src="${BUILD_HOME}/${BRANCH_TESTS}.zip" dest="${BUILD_HOME}/${TMPDIR_TESTS}"/> |
| |
| <copy todir="${ECLIPSE_HOME_TEST}/eclipse/dropins/${RELENG_TESTS}"> |
| <fileset dir="${BUILD_HOME}/${TMPDIR_TESTS}/${BRANCH_TESTS}" includes="**/*" /> |
| </copy> |
| |
| <!-- cleanup temp working files --> |
| <delete file="${BUILD_HOME}/${BRANCH_TESTS}.zip"/> |
| <delete dir="${BUILD_HOME}/${TMPDIR_TESTS}" /> |
| |
| </target> |
| <target |
| name="installRelengTools" |
| depends="init"> |
| <property |
| name="APP_NAME" |
| value="org.eclipse.equinox.p2.director"/> |
| <property |
| name="OTHER_ARGS_TOOLS" |
| value="-metadataRepository http://download.eclipse.org/webtools/releng/repository/ -artifactRepository http://download.eclipse.org/webtools/releng/repository/ -installIU org.eclipse.wtp.releng.tools.feature.feature.group"/> |
| |
| <property |
| name="VM_ARGS" |
| value="-vmargs -Xmx256m"/> |
| |
| <!-- install latest --> |
| <exec |
| executable="${eclipseExecutable}" |
| dir="${basedir}" |
| failonerror="true"> |
| <arg |
| line="-data ${eclipseWorkspace} -debug -nosplash --launcher.suppressErrors -vm ${JAVA_EXEC_DIR} -application ${APP_NAME} ${OTHER_ARGS_TOOLS} ${VM_ARGS}"/> |
| </exec> |
| </target> |
| |
| <target |
| name="getModel" |
| depends="init" |
| unless="modelRetrived"> |
| <echo |
| message=" removing all of previous model project: ${BUILD_MODEL_DIR}"/> |
| <delete |
| dir="${BUILD_MODEL_DIR}" |
| failonerror="false"/> |
| |
| <echo |
| message=" removing previous ${BRANCH_BUILD}.zip if it exists, in ${BUILD_HOME}"/> |
| |
| <delete file="${BUILD_HOME}/${BRANCH_BUILD}.zip" failonerror="false" /> |
| |
| <get src="${CGITURL}/${BUILD_MODEL}.git/snapshot/${BRANCH_BUILD}.zip" dest="${BUILD_HOME}" verbose="true" /> |
| |
| <unzip src="${BUILD_HOME}/${BRANCH_BUILD}.zip" dest="${BUILD_HOME}/${TMPDIR_BUILD}"/> |
| |
| <echo |
| message=" copy aggregator files to ${BUILD_MODEL_DIR}"/> |
| <echo |
| message=" from ${BUILD_HOME}/${TMPDIR_BUILD}/${BRANCH_BUILD}"/> |
| |
| <copy todir="${BUILD_MODEL_DIR}"> |
| <fileset dir="${BUILD_HOME}/${TMPDIR_BUILD}/${BRANCH_BUILD}" includes="**/*" /> |
| </copy> |
| |
| <!-- cleanup temp working files --> |
| <delete file="${BUILD_HOME}/${BRANCH_BUILD}.zip"/> |
| <delete dir="${BUILD_HOME}/${TMPDIR_BUILD}" /> |
| |
| <property |
| name="modelRetrived" |
| value="true"/> |
| </target> |
| |
| <target |
| name="runBothBuilders" |
| depends="init,getModel,rewriteRepositoryURL"> |
| |
| <antcall |
| target="runBuckyBuild"/> |
| |
| <antcall |
| target="runAggregator"/> |
| |
| |
| |
| </target> |
| <target |
| name="runAggregator" |
| depends="init,getModel,rewriteRepositoryURL"> |
| <!-- |
| If not otherwise set in properties file, use these values. Note |
| the build.eclipse.org production machine must override these values for property |
| values appropriate for it. |
| --> |
| |
| <!-- -trustedContributions Eclipse,Equinox --> |
| <property |
| name="AGGREGATOR_APP_ARGS" |
| value="-buildModel ${BUILD_MODEL_DIR}/simrel.b3aggr |
| -buildRoot ${AGGREGATOR_RESULTS} -mirrorReferences -packedStrategy unpackAsSibling |
| -logLevel DEBUG -emailFromName SimRelAggregator |
| -logURL ${logURL}"/> |
| |
| <!-- Important: on any non-production machines it is important to _not_ use |
| eclipse.p2.mirrors=false, so this value should be supplied by calling script's |
| properties. Note, we include '-vmargs' here, in case there are not any. Not |
| sure if the use of -vmargs _requires_ arguments or not, but probably would. |
| note: -Declipse.p2.MD5Check=false may be needed as a workaround for bug [253713] |
| (should not actually be required ... but have left note for historical reference) |
| note: rememeber that JAVA_6 should not be used for jar processor, see |
| for example, bug 244603 and bug 279596. --> |
| <property |
| name="BUILDER_VM_ARGS" |
| value="-vmargs -Xmx384m -Dorg.eclipse.update.jarprocessor.pack200=${JAVA_6_HOME}/jre/bin"/> |
| <echo |
| message="AGGREGATOR_APP_ARGS: ${AGGREGATOR_APP_ARGS}"/> |
| |
| <!-- we will clean the aggregation directory ourselves, as work around for bug 354321 |
| https://bugs.eclipse.org/bugs/show_bug.cgi?id=354321 |
| --> |
| <echo message="Removing any previous aggregation results, from ${AGGREGATOR_RESULTS}"/> |
| <delete dir="${AGGREGATOR_RESULTS}" failonerror="false" /> |
| <mkdir dir="${AGGREGATOR_RESULTS}"/> |
| |
| <exec |
| executable="${eclipseExecutable}" |
| dir="${basedir}" |
| failonerror="true"> |
| <arg |
| value="-debug"/> |
| <arg |
| value="-nosplash"/> |
| <arg |
| line="-data ${eclipseWorkspace}"/> |
| <arg |
| line="-vm ${JAVA_6_HOME}/jre/bin"/> |
| <arg |
| value="--launcher.suppressErrors"/> |
| <arg |
| line="-application org.eclipse.b3.cli.headless"/> |
| <arg |
| value="aggregate"/> |
| <arg |
| line="--buildId ${buildTimestamp}"/> |
| <arg |
| line="${AGGREGATOR_APP_ARGS}"/> |
| <arg |
| line="${BUILDER_VM_ARGS}"/> |
| </exec> |
| </target> |
| |
| <target |
| name="runAggregatorBuildOnly" |
| depends="init,getModel,rewriteRepositoryURL"> |
| <!-- |
| If not otherwise set in properties file, use these values. Note |
| the build.eclipse.org production machine must override these values for property |
| values appropriate for it. |
| --> |
| |
| <property |
| name="AGG_APP_ARGS" |
| value="${AGGREGATOR_APP_ARGS_BUILDONLY}"/> |
| |
| <!-- Important: on any non-production machines it is important to _not_ use |
| eclipse.p2.mirrors=false, so this value should be supplied by calling script's |
| properties. Note, we include '-vmargs' here, in case there are not any. Not |
| sure if the use of -vmargs _requires_ arguments or not, but probably would. |
| note: -Declipse.p2.MD5Check=false may be needed as a workaround for bug [253713] |
| (should not actually be required ... but have left note for historical reference) |
| note: rememeber that JAVA_6 should not be used for jar processor, see |
| for example, bug 244603 and bug 279596. --> |
| <property |
| name="BUILDER_VM_ARGS" |
| value="-vmargs -Xmx384m -Dorg.eclipse.update.jarprocessor.pack200=${JAVA_6_HOME}/jre/bin"/> |
| <echo |
| message="AGG_APP_ARGS: ${AGG_APP_ARGS}"/> |
| <exec |
| executable="${eclipseExecutable}" |
| dir="${basedir}" |
| failonerror="true"> |
| <arg |
| value="-debug"/> |
| <arg |
| value="-nosplash"/> |
| <arg |
| line="-data ${eclipseWorkspace}"/> |
| <arg |
| line="-vm ${JAVA_6_HOME}/jre/bin"/> |
| <arg |
| value="--launcher.suppressErrors"/> |
| <arg |
| line="-application org.eclipse.b3.cli.headless"/> |
| <arg |
| value="aggregate"/> |
| <arg |
| line="--buildId ${buildTimestamp}"/> |
| <arg |
| line="${AGG_APP_ARGS}"/> |
| <arg |
| line="${BUILDER_VM_ARGS}"/> |
| </exec> |
| </target> |
| |
| <target |
| name="runAggregatorVerifyOnly" |
| depends="init,getModel,rewriteRepositoryURL"> |
| <!-- |
| If not otherwise set in properties file, use these values. Note |
| the build.eclipse.org production machine must override these values for property |
| values appropriate for it. |
| --> |
| |
| <property |
| name="AGG_APP_ARGS" |
| value="${AGGREGATOR_APP_ARGS_VERIFYONLY}"/> |
| |
| <!-- Important: on any non-production machines it is important to _not_ use |
| eclipse.p2.mirrors=false, so this value should be supplied by calling script's |
| properties. Note, we include '-vmargs' here, in case there are not any. Not |
| sure if the use of -vmargs _requires_ arguments or not, but probably would. |
| note: -Declipse.p2.MD5Check=false may be needed as a workaround for bug [253713] |
| (should not actually be required ... but have left note for historical reference) |
| note: rememeber that JAVA_6 should not be used for jar processor, see |
| for example, bug 244603 and bug 279596. --> |
| <property |
| name="BUILDER_VM_ARGS" |
| value="-vmargs -Xmx384m -Dorg.eclipse.update.jarprocessor.pack200=${JAVA_6_HOME}/jre/bin"/> |
| <echo |
| message="AGG_APP_ARGS: ${AGG_APP_ARGS}"/> |
| |
| <exec |
| executable="${eclipseExecutable}" |
| dir="${basedir}" |
| failonerror="true"> |
| <arg |
| value="-debug"/> |
| <arg |
| value="-nosplash"/> |
| <arg |
| line="-data ${eclipseWorkspace}"/> |
| <arg |
| line="-vm ${JAVA_6_HOME}/jre/bin"/> |
| <arg |
| value="--launcher.suppressErrors"/> |
| <arg |
| line="-application org.eclipse.b3.cli.headless"/> |
| <arg |
| value="aggregate"/> |
| <arg |
| line="--buildId ${buildTimestamp}"/> |
| <arg |
| line="${AGG_APP_ARGS}"/> |
| <arg |
| line="${BUILDER_VM_ARGS}"/> |
| </exec> |
| </target> |
| |
| |
| <target |
| name="runHybrid" |
| depends="init,getModel,rewriteRepositoryURL"> |
| <!-- |
| If not otherwise set in properties file, use these values. Note |
| the build.eclipse.org production machine must override these values for property |
| values appropriate for it. |
| --> |
| |
| <property |
| name="HYBRID_APP_ARGS" |
| value="--buildModel ${BUILD_MODEL_DIR}/simrel.b3aggr |
| --buildRoot ${HYBRID_RESULTS} --mirrorReferences --packedStrategy unpackAsSibling |
| --mavenResult --logLevel DEBUG --emailFromName SimRelAggregator |
| --logURL ${logURL}"/> |
| |
| <!-- Important: on any non-production machines it is important to _not_ use |
| eclipse.p2.mirrors=false, so this value should be supplied by calling script's |
| properties. Note, we include '-vmargs' here, in case there are not any. Not |
| sure if the use of -vmargs _requires_ arguments or not, but probably would. |
| note: -Declipse.p2.MD5Check=false may be needed as a workaround for bug [253713] |
| (should not actually be required ... but have left note for historical reference) |
| note: rememeber that JAVA_6 should not be used for jar processor, see |
| for example, bug 244603 and bug 279596. --> |
| <property |
| name="BUILDER_VM_ARGS" |
| value="-vmargs -Xmx384m -Dorg.eclipse.update.jarprocessor.pack200=${JAVA_6_HOME}/jre/bin"/> |
| |
| <exec |
| executable="${eclipseExecutable}" |
| dir="${basedir}" |
| failonerror="true"> |
| <arg |
| value="-debug"/> |
| <arg |
| value="-nosplash"/> |
| <arg |
| line="-data ${eclipseWorkspace}"/> |
| <arg |
| line="-vm ${JAVA_6_HOME}/jre/bin"/> |
| <arg |
| value="--launcher.suppressErrors"/> |
| <arg |
| line="-application org.eclipse.b3.cli.headless"/> |
| <arg |
| value="aggregate"/> |
| <arg |
| line="--buildId ${buildTimestamp}"/> |
| <arg |
| line="${HYBRID_APP_ARGS}"/> |
| <arg |
| line="${BUILDER_VM_ARGS}"/> |
| </exec> |
| </target> |
| |
| <target |
| name="init" |
| depends="getBuildTimestamp, getJobName, getBuildWorkarea" |
| unless="isInitialized"> |
| |
| <!-- often, especially for Huson slaves, it is easiest to set hostForURL "manually" in properties or |
| on command line, e.g. -DhostForURL=hudson ... but, if not defined yet, we'll fallback to reasonable guess --> |
| <property |
| name="hostForURL" |
| value="${HOSTNAME}"/> |
| |
| <condition |
| property="logURL" |
| value="${LOG_URL}" |
| else="${hostForURL}"> |
| <isset |
| property="LOG_URL"/> |
| </condition> |
| <property |
| name="eclipseWorkspace" |
| value="${buildWorkarea}/eclipseworkingspace"/> |
| |
| <!-- if the eclipse workspace exists, remove it, to make sure we are starting "fresh". Eclipse will create it. Be sure some "archive artifacts" job saves it away, if desired. --> |
| <delete |
| dir="${eclipseWorkspace}" |
| quiet="true"/> |
| |
| <property |
| name="eclipseExecutable" |
| value="${ECLIPSE_EXE}"/> |
| |
| <available |
| file="${ECLIPSE_HOME}/eclipse" |
| type="dir" |
| property="eclipseExists"/> |
| |
| <available |
| file="${ECLIPSE_HOME_TEST}/eclipse" |
| type="dir" |
| property="eclipseTestExists"/> |
| |
| <echo |
| message="aggrPropertyFile: ${aggrPropertyFile}"/> |
| <echo |
| message="buildId: ${buildTimestamp}"/> |
| <echo |
| message="user.dir: ${user.dir}"/> |
| <echo |
| message="user.home: ${user.home}"/> |
| <echo |
| message="Eclipse WORKSPACE: ${eclipseWorkspace}"/> |
| <echo |
| message="PATH: ${env.PATH}"/> |
| <echo |
| message="JAVA_HOME: ${JAVA_HOME}"/> |
| <echo |
| message="hostForURL: ${hostForURL}"/> |
| <echo |
| message="JOB_NAME: ${env.JOB_NAME}"/> |
| <echo |
| message="BUILD_NUMBER: ${env.BUILD_NUMBER}"/> |
| <echo |
| message="logURL: ${logURL}"/> |
| <echo |
| message="ECLIPSE_EXE: ${ECLIPSE_EXE}"/> |
| |
| <echo |
| message="BUILDER_VM_ARGS: ${BUILDER_VM_ARGS}"/> |
| <echoproperties/> |
| <!-- quick fail, if set up wrong --> |
| <fail |
| unless="BUILD_HOME" |
| message="BUILD_HOME must be set before running this script"/> |
| |
| <!-- |
| no need to initialize twice |
| --> |
| <property |
| name="isInitialized" |
| value="true"/> |
| |
| </target> |
| <target |
| name="getBuildTimestamp" |
| depends="getHudsonTimestamp" |
| unless="buildTimestamp"> |
| <tstamp> |
| <format |
| property="buildTimestamp" |
| pattern="yyyy-MM-dd_HH-mm-ss" |
| timezone="UTC_TIME"/> |
| </tstamp> |
| <echo |
| message="Using ant computed timestamp"/> |
| </target> |
| <target |
| name="getHudsonTimestamp" |
| depends="getCCTimestamp" |
| unless="buildTimestamp" |
| if="env.BUILD_ID"> |
| <property |
| name="buildTimestamp" |
| value="${env.BUILD_ID}"/> |
| <echo |
| message="Using timestamp from Hudson Build ID"/> |
| </target> |
| <target |
| name="getCCTimestamp" |
| unless="buildTimestamp" |
| if="cctimestamp"> |
| <property |
| name="buildTimestamp" |
| value="${cctimestamp}"/> |
| <echo |
| message="Using timestamp from CC time stamp"/> |
| </target> |
| <target |
| name="getJobName" |
| depends="getHudsonJobName" |
| unless="jobName"> |
| <property |
| name="jobName" |
| value="localbuild"/> |
| <echo |
| message="Using default jobName: localbuild"/> |
| </target> |
| <target |
| name="getHudsonJobName" |
| depends="getCCJobName" |
| unless="jobName" |
| if="env.JOB_NAME"> |
| <property |
| name="jobName" |
| value="${env.JOB_NAME}"/> |
| <echo |
| message="Using jobName from Hudson Builder: ${jobName}"/> |
| </target> |
| <target |
| name="getCCJobName" |
| unless="jobName" |
| if="projectname"> |
| <property |
| name="jobName" |
| value="${projectname}"/> |
| <echo |
| message="Using jobName from CC Builder: ${jobName}"/> |
| </target> |
| <target |
| name="getBuildWorkarea" |
| depends="getJobName, getHudsonBuildWorkarea" |
| unless="buildWorkarea"> |
| <property |
| name="buildWorkarea" |
| value="${basedir}"/> |
| <echo |
| message="Using default buildWorkarea: ${buildWorkarea}"/> |
| </target> |
| <target |
| name="getHudsonBuildWorkarea" |
| depends="getCCBuildWorkarea" |
| unless="buildWorkarea" |
| if="env.HUDSON_HOME"> |
| <property |
| name="buildWorkarea" |
| value="${env.WORKSPACE}"/> |
| <echo message="Using buildWorkarea from Hudson Builder: ${buildWorkarea}"/> |
| </target> |
| <target |
| name="getCCBuildWorkarea" |
| unless="buildWorkarea" |
| if="env.PROJECT_PROJECTS"> |
| <property |
| name="buildWorkarea" |
| value="${env.PROJECT_PROJECTS}/${jobName}/${buildTimestamp}"/> |
| <echo |
| message="Using buildWorkarea from CC Builder: ${buildWorkarea}"/> |
| </target> |
| |
| <target |
| name="savePrevious" |
| depends="init" |
| if="eclipseExists" |
| unless="previousSaved"> |
| <!-- remember, old ones have to be maually cleaned up, from time to time --> |
| <move |
| verbose="true" |
| todir="${ECLIPSE_HOME}/eclipse${buildTimestamp}"> |
| <fileset |
| dir="${ECLIPSE_HOME}/eclipse"/> |
| </move> |
| |
| <property |
| name="previousSaved" |
| value="true"/> |
| |
| </target> |
| |
| <target |
| name="savePreviousTest" |
| depends="init" |
| if="eclipseTestExists"> |
| <!-- remember, old ones have to be maually cleaned up, from time to time --> |
| <fail unless="buildTimestamp"/> |
| |
| <move todir="${ECLIPSE_HOME_TEST}/eclipse${buildTimestamp}"> |
| <fileset dir="${ECLIPSE_HOME_TEST}/eclipse"/> |
| </move> |
| |
| </target> |
| |
| <!-- Only rewrite, if a value has been provided --> |
| <!-- TODO: should make the "exclude" part automatic based on presence/abscense of "useTrusted" property --> |
| <target |
| name="rewriteRepositoryURL" |
| if="rewriteRepositoryURLValue"> |
| <replace |
| dir="${BUILD_MODEL_DIR}" |
| token="${commonRepositoryDownloadURLValue}" |
| value="${rewriteRepositoryURLValue}"> |
| <include name="*.b3aggrcon"/> |
| <!-- |
| <exclude name="ep.b3aggrcon"/> |
| <exclude name="equinox.b3aggrcon"/> |
| --> |
| </replace> |
| <echo message="Rewrote repository location URLs ..."/> |
| <echo message=" From: ${commonRepositoryDownloadURLValue}"/> |
| <echo message=" To: ${rewriteRepositoryURLValue}"/> |
| <echo message=" Excluding no files since no composite artifacts, just agregate"/> |
| <!-- |
| <echo message=" Excluding: ep.b3aggrcon"/> |
| <echo message=" Excluding: ep.b3aggrcon, equinox.b3aggrcon"/> |
| --> |
| |
| </target> |
| |
| <target |
| name="default"> |
| <echo |
| message="There is no default target for this build file"/> |
| </target> |
| </project> |