The whole script is a little over 1,000 lines, so posting the whole thing
wouldn't be too nice :)  But, here is a trimmed-down version that should
give you the info you want...  It should be noted that my Ant scripts are
note what one would call "typical"... I do things a little differently,
but I prefer it done this way... anyway...

<project name="MyProject" default="build" basedir="." >

  <property file="build.properties" />
  <property file="build_control.properties" />

  <path id="classpath">
    <pathelement location="../WEB-INF/lib/commons-beanutils.jar" />
    <pathelement location="../WEB-INF/lib/struts.jar" />
    <pathelement location="../source/temp" />
  </path>

  <target name="build">
    <get_dependencies />
    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
      <classpath refid="compiletime_classpath" />
    </taskdef>
    <set_props />
    <antcall target="compile_app" inheritRefs="true" />
    <antcall target="junit_tests" inheritRefs="true" />
    <antcall target="static_analysis_checkstyle" inheritRefs="true" />
  </target>

  <macrodef name="get_dependencies">
    <sequential>
      <echo message=" " />
      <echo message="Retrieving dependencies..." />
      <setproxy proxyhost="${proxy_host}" proxyport="${proxy_port}" />
      <typedef classpath="libutils/ant-dependencies.jar"
       resource="dependencies.properties" />
        <dependencies pathId="compiletime_classpath" verbose="true">
                <dependency group="servletapi" version="2.3" />
                <dependency group="checkstyle" version="4.0-beta5" />
                <dependency group="checkstyle" artifact="checkstyle-optional"
                 version="4.0-beta5" />
                <dependency group="antlr" version="2.7.5" />
                <dependency group="regexp" version="1.3" />
                <dependency group="junit" version="3.8.1" />
                <dependency group="ant-contrib" version="20020829" />
        </dependencies>
      <echo message="Done" />
    </sequential>
  </macrodef>

  <macrodef name="set_props">
    <sequential>
    <echo message="Setting build control properties..." />
    <taskdef name="antform" classname="com.sardak.antform.AntForm"
                  classpath="libutils/antform.jar" />
                <antform title="" save="build_control.properties"
                  image="../img/appTitle.gif" resetMessage="" okMessage="Build">
    <label>Check off the tasks you wish to execute for this build, or
close the window to abort the build.  Note that ONE AND ONLY ONE of
the options in the first section should MUST be selected.  Also note
that the application in exploded format is always set up for Tomcat
only, and the EAR is always set up for Websphere only, and both are
set up in whatever mode is indicated by the first four items. 
Security IS NOT enabled in Tomcat.</label>
                        <separator />
                        <booleanProperty label="Target build for DEVELOPMENT 
environment
(mode_dev)"
                          property="appmode_dev" />
                        <booleanProperty
                          label="Target build for STEST environment 
(appmode_stest)"
                          property="appmode_stest" />
                        <booleanProperty
                          label="Target build for ATEST environment 
(appmode_atest)"
                          property="appmode_atest" />
                        <booleanProperty
                          label="Target build for PRODUCTION environment 
(appmode_prod)"
                          property="appmode_prod" />
                        <separator />
      <booleanProperty
                          label="Run CheckStyle on all code 
(do_static_analysis_checkstyle)"
                          property="do_static_analysis_checkstyle" />
                        <booleanProperty label="Perform unit tests 
(do_unit_tests)"
                          property="do_unit_tests" />
      </antform>
                <echo message="Done" />
    </sequential>
  </macrodef>

  <!-- Compile the app. -->
  <target name="compile_app">
    <echo message="Compiling app..." />
    <delete dir="../WEB-INF/classes/com" />
    <mkdir dir="../WEB-INF/classes/com" />
    <javac srcdir="${basedir}"
     debug="true" debuglevel="lines,vars,source"
     destdir="../WEB-INF/classes" deprecation="on"
     excludes="junittests/*.*"
     classpath="../WEB-INF/lib/log4j.jar">
      <classpath refid="classpath" />
      <classpath refid="compiletime_classpath" />
    </javac>
    <echo message="Done" />
  </target>

  <!-- Perform any JUnit tests required. -->
  <target name="junit_tests">
    <if>
      <equals arg1="${do_unit_tests}" arg2="true" />
      <then>
        <echo message="Performing JUnit Tests..." />
        <javac srcdir="junittests"
         destdir="temp" deprecation="on">
          <classpath refid="classpath" />
          <classpath refid="compiletime_classpath" />
        </javac>
        <junit printsummary="on" haltonerror="yes" haltonfailure="yes">
          <classpath refid="classpath" />
          <classpath refid="compiletime_classpath" />
          <formatter type="brief" usefile="false" />
          <test name="junittests.DisbursementDelegateTestCase" />
        </junit>
        <echo message="Done" />
      </then>
      <else>
        <echo message="Skipping junit_tests" />
      </else>
    </if>
  </target>

  <!-- Performs static code analysis using CheckStyle. -->
  <target name="static_analysis_checkstyle">
    <if>
      <equals arg1="${do_static_analysis_checkstyle}" arg2="true" />
      <then>
        <echo message="Performing static code analysis using
CheckStyle..." />
        <delete file="static_analysis_checkstyle.xml" />
        <taskdef resource="checkstyletask.properties">
          <classpath refid="classpath" />
          <classpath refid="compiletime_classpath" />
        </taskdef>
        <checkstyle config="libutils/checkstyle_checks.xml"
         failOnViolation="false">
          <classpath refid="classpath" />
          <classpath refid="compiletime_classpath" />
          <fileset dir="com" includes="**/*.java" />
          <formatter type="xml"
           toFile="static_analysis_checkstyle.xml" />
        </checkstyle>
        <echo message="Done" />
      </then>
      <else>
        <echo message="Skipping static_analysis_checkstyle" />
      </else>
    </if>
  </target>

</project>


And, for completeness, build_control.properties is nothing but:

appmode_dev=true
do_unit_tests=true
do_static_analysis_checkstyle=true


-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com
AIM: fzammetti
Yahoo: fzammetti
MSN: [EMAIL PROTECTED]

On Tue, February 14, 2006 12:33 pm, Ivan \"Rambius\" Ivanov said:
> Hello Frank,
>
> --- "Frank W. Zammetti" <[EMAIL PROTECTED]> wrote:
>
>> I don't know if it's the right way to do it, or if
>> there is some reason
>> not to do it this way, but I found a solution... I
>> took the contents of
>> the target that executed Antform and put it in a
>> macrodef... doing that,
>> the properties DO get changed as expected.
> Can you post your code? I got interesed because
> properties are immutable, no matter where you send
> them - in a ordinary target or in a macrodef.
>
> Regards
> Ivan
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to