Well Diane, it worked like a charm. Thank you very much. I have written the
target as you suggested and if not all properties are set, then the build
fails with a message saying what properties are needed. This exactly what I
wanted.

Below is the actual xml portion if anyone is interested:

....
<target name="check" description="Checks weather project is ready for
building">
        <tstamp/>
        <echo message="Build started: ${DSTAMP}"/>
        <property name="check.src.home" value="$${src.home}"/>
        <property name="check.compile.to" value="$${compile.to}"/>
        <property name="check.dist.home" value="$${dist.home}"/>
        <property name="check.javadoc.home" value="$${javadoc.home"/>
        <property name="check.doccheck.home" value="$${doccheck.home}"/>
        <property name="check.packages" value="$${packages}"/>
        <property name="check.lib.home" value="$${lib.home}"/>
        <property name="check.extlibs.home" value="$${extlibs.home}"/>
        <condition property="missing.properties">
                <or>
                        <equals arg1="${check.src.home}" arg2="${src.home}"/>
                        <equals arg1="${check.compile.to}" arg2="${compile.to}"/>
                        <equals arg1="${check.dist.home}" arg2="${dist.home}"/>
                        <equals arg1="${check.javadoc.home}" arg2="${javadoc.home}"/>
                        <equals arg1="${check.doccheck.home}" arg2="${docheck.home}"/>
                        <equals arg1="${check.packages}" arg2="${packages}"/>
                        <equals arg1="${check.lib.home}" arg2="${lib.home}"/>
                        <equals arg1="${check.extlibs.home}" arg2="${extlibs.home}"/>

                </or>
        </condition>
        <antcall target="help"/>
</target>

<target name="help" if="missing.properties">
        <echo>
        Not all needed properties are set!!!
        This build file needs a build.properies file to set the following
properties:
                src.home - The source code (.java files) home.
                compile.to - Where the classes are compiled to.
                dist.home - The directory where distribution files are created.
                javadoc.home - The directory for the javadoc html.
                doccheck.home - The directory for the DocCheck html
                packages - the packages to compile, it accepts * (ie tv.*)
                lib.home - Directory where needed jar's are stored.
                extlibs.hom - Directory where needed jar's are copied from.

        Other properties can also be set in this file (like build.compiler, etc).
        </echo>
        <fail message="Not all needed properties are set!!!"/>
</target>
....

I made my other targets like prepare and clean depend on check, and it
appears to be working great.

Ylan Segal.

Reply via email to