You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by gu...@gerling.de on 2001/03/13 17:47:19 UTC

How can I unset a property when calling a new ant-file

Hi there.

I have written a build.xml which copies itself into other dirs and executes
itself, and sometimes does this ongoing.
Each dir has a property file with specific information.

How if a property is once set, I want to unset it, because I use this
property in the target with 'if' and 'unless'.

I understood, that a property is there if it is once used, even if the value
is "".

To avoid entering allways the if-target (so to say), I must be able to unset
a property or find another workaround.

Any idea?

In the posted example the following targets are in my focus:
<target name="module.dist2base" if="app.isbasemod" >
<target name="module.dist2lib" unless="app.isbasemod" >

The property "app.isbasemod" must be unset anywhere, I think.

Unsetting the property must occur somewhere near the different, I think.
    <ant antfile= .... >
      <property file="../${module.name}/etc/app-config.properties" />
    </ant>


Kind regrads

Guido

----------------------------------------------------------------------------
--------------------------------------------------------
The following example is not complete (missing build.xml and depend.xml)
----------------------------------------------------------------------------
--------------------------------------------------------
<project name="Update Buildfile" default="update" basedir=".">
<!-- $Id: update.xml,v 1.3 2001/03/13 16:00:40 U29812 Exp $  -->

  <property file="../pc-config.properties" />
<!-- "../pc-config.properties" soll folgenden Inhalt haben: (für lokale
Umgebung)
tomcat.home    = c:/into/server/tomcat
jdk.home       = c:/jbuilder4/jdk1.3
baselibs.home = ../dev
-->

  <property file="etc/app-config.properties" />
<!-- "app-config.properties" soll folgenden Inhalt haben: (für
projektbezogene Informationen)
app.name     	= uwgl
app.fullname	= Underwriting Guidelines
app.cvsname	= uwgl
app.iswebapp    = Nur setzen, wenn Anwendung eine Webapp
-->

  <target name="jars_to_base" if="app.isbasemod" >
    <echo message="module '${app.name}', is basemod: ${app.isbasemod}" />
    <copy todir="${baselibs.home}" >
        <fileset dir="dist" >
         <include name="*.jar"/>
         <exclude name="*_doc.jar,*_src.jar"/>
        </fileset>
    </copy>
    <copy todir="${baselibs.home}" file="dist/${app.name}_doc.jar" />
    <copy todir="${baselibs.home}" file="dist/${app.name}_src.jar" />
  </target>

  <target name="jars_to_tomcat" if="app.isbasemod" >
    <echo message="module '${app.name}', is basemod: ${app.isbasemod}" />
    <copy todir="${tomcat.home}/lib/" >
        <fileset dir="dist" >
           <include name="*.jar"/>
           <exclude name="*_doc.jar,*_src.jar"/>
        </fileset>
    </copy>
  </target>

  <target name="module.init" if="module.name" >
    <echo message="------------------------------------------" />
    <echo message="Init von '${module.name}'" />
    <echo message="------------------------------------------" />
    <echo message="antfile=../${module.name}/build.xml" />
    <echo message="dir=../${module.name}" />
    <echo message="../${module.name}/etc/app-config.properties" />

    <cvs package="${module.name}" dest=".." />

    <mkdir dir="../${module.name}/build" />
    <copy todir="../${module.name}/build" >
      <fileset dir="build" >
        <include name="*"/>
        <exclude name="CVS"/>
      </fileset>
    </copy>

    <ant antfile="etc/depend.xml" target="init" dir="../${module.name}" >
      <property file="../${module.name}/etc/app-config.properties" />
    </ant>

    <ant antfile="build/build.xml" target="dist" dir="../${module.name}" >
      <property file="../${module.name}/etc/app-config.properties" />
    </ant>

    <copy todir="." file="../${module.name}/etc/${module.name}.library" />

    <ant antfile="build/update.xml" target="module.dist2base"
dir="../${module.name}" >
      <property file="../${module.name}/etc/app-config.properties" />
    </ant>
    <ant antfile="build/update.xml" target="module.dist2lib" dir="." >
      <property file="../${module.name}/etc/app-config.properties" />
    </ant>

    <echo message="------------------------------------------" />
    <echo message="Init von '${module.name}' abgeschlossen" />
    <echo message="------------------------------------------" />
  </target>

  <target name="module.dist2base" if="app.isbasemod" >
    <echo message="module '${app.name}', is basemod: ${app.isbasemod}" />
    <ant antfile="build/update.xml" target="jars_to_base"
dir="../${module.name}" >
      <property file="../${module.name}/etc/app-config.properties" />
    </ant>
  </target>

  <target name="module.dist2lib" unless="app.isbasemod" >
    <echo message="module '${app.name}', is basemod: ${app.isbasemod}" />
    <copy todir="lib" >
      <fileset dir="../${module.name}/dist" >
        <include name="*.jar"/>
        <exclude name="*_doc.jar,*_src.jar" />
      </fileset>
    </copy>
    <delete>
      <fileset dir="lib" >
        <include name="*_doc.jar,*_src.jar" />
      </fileset>
    </delete>
  </target>


  <!-- Die einzelnen Module -->
  <target name="mod.basisservlet" >
    <antcall target="module.init" >
      <param name="module.name"      value="basisservlet"/>
    </antcall>
  </target>

  <target name="mod.gendoc" >
    <antcall target="module.init" >
      <param name="module.name"      value="gendoc"/>
    </antcall>
  </target>

  <target name="mod.log4j" >
    <antcall target="module.init" >
      <param name="module.name"      value="log4j"/>
    </antcall>
  </target>

  <target name="mod.ecs" >
    <antcall target="module.init" >
      <param name="module.name"      value="ecs"/>
    </antcall>
  </target>

  <target name="mod.toplink" >
    <antcall target="module.init" >
      <param name="module.name"      value="toplink"/>
    </antcall>
  </target>

</project>