Java Mailing List Archive

http://www.ant-tasks.com/

Apache Ant Archive

» Ant Users List
» Ant Developers List
property set in sub-task not defined

property set in sub-task not defined

2003-03-17       - By Dominique Devienne
Reply:     1     2     3     4     5     6     7     8  

Using pure Ant:

<target name="init" depends="-lib.dir.exists?, -set.lib.classpath">
 <property name="lib.classpath" value="" />
 ...
</target>

<target name="-lib.dir.exists?">
  <available file="${lib.dir}" type="dir"
             property="lib.dir.exists" />
</target>

<target name="-set.lib.classpath" if="lib.dir.exists" >
 <path id="lib.classpath">
   <fileset dir="${lib.dir}" includes="**/*.jar" />
 </path>
 <property name="lib.classpath" refid="lib.classpath" />
</target>

Using Ant-contrib would be nicer of course. Maybe one day it will make it to
Ant: some committer seem to prefer spaghetti Ant as above than an <if>, but
maybe just maybe the wind is turning from recent posts on ant-dev... --DD

-----Original Message-----
From: Pedro Salazar [mailto:pedro-b-salazar@(protected)]
Sent: Monday, March 17, 2003 2:33 PM
To: Ant Users List
Subject: RE: property set in sub-task not defined

Hi,

yes the "depends" should work, but it's not nice using the "depends" (I
think) because there are some variables that I don't have yet (lib.dir),
that are set in my main target.

My real case that I'm working is making a content classpath of the
directory $(lib.dir) if it exists, and put it "" (blank) if not to avoid
the string "${lib.classpath}.

I cannot use the <fileset> directly only without verifying that the
directory exists, otherwise it throws an error. So, I'm trying to verify
it before:

<target name="init" />
...
<available
     file="${lib.dir}" type="dir"
     property="lib_dir.exists"/>
   <antcall target="set_lib.classpath" />
   <antcall target="clear_lib.classpath" />
...
</target>

<target name="set_lib.classpath" if="lib_dir.exists" >
   <path id="lib.classpath">
       <fileset dir="${lib.dir}">
           <include name="**/*.jar"/>
       </fileset>
   </path>
   <property name="lib.classpath" refid="lib.classpath" />
</target>
<target name="clear_lib.classpath" unless="lib_dir.exists" >
   <property name="lib.classpath" value="" />
</target>

Do you have any approach instead using the depends (that would make very
noise)?

thanks,
Pedro Salazar.

On Mon, 2003-03-17 at 20:12, Dominique Devienne wrote:
> Use the depends attribute of target instead of antcall/ant. --DD
>
> -----Original Message-----
> From: Pedro Salazar [mailto:pedro-b-salazar@(protected)]
> Sent: Monday, March 17, 2003 2:11 PM
> To: user@(protected)
> Subject: property set in sub-task not defined
>
> Greetings,
>
> I'm trying to set a property in a sub-task, but it not working. I put
> here a sample test:
>
> <target name="X">
>   <antcall target="Y" />
>    <echo message="Z is ${Z}" />
> </target>
>
> <target name="Y">
>   <property name="Z" value="OK" />
> </target>
>
> If I call the target X, I will get the output "Z is ${Z}" instead what I
> expect to happen, "Z is OK".
>
> How can I set a property in a sub-task if we know that properties are
> immutable?
>
> thanks,
> Pedro Salazar.
--
<id name="pedro salazar">
<email>pedro-b-salazar@(protected)</email>
<pgp-key-id>0E129E31D803BC61</pgp-key-id>
</id>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)


©2008 ant-tasks.com - Jax Systems, LLC, U.S.A.