-----Original Message-----
From: Stefan Bodewig [mailto:[EMAIL PROTECTED]]
Sent: 27 June 2001 15:04
To: [EMAIL PROTECTED]
Subject: Re: Set properties.
Natalia Bello <[EMAIL PROTECTED]> wrote:
> Hi, I am quite new with Ant, and I have some problems. I am trying
> to use the same target from two different ones; setting some
> parameters, and execute or not this last target depending of one of
> the parameters.
>
> This is the code:
>
> <target name="chek_junit">
> <available file="${junit.jar}"
> property="junit.jar.present"/> <echo message="Junit
> present; ${junit.jar.present}"/> <antcall
> target="get_jar"> <param name="present"
> value="${junit.jar.present}"/> <param name="project.name"
> value="${Junit.project.name}"/> <param name="jar.name"
> value="${junit.jar}"/> </antcall>
>
> </target>
>
> <target name="check_log4j">
> <available file="${log4j.jar}" property="
> log4j.jar.present "/> <echo message="Log4j present:
> ${log4j.jar.present}"/> <antcall target="get_jar">
>
> <param name="present" value="${log4j.jar.present}"/>
> <param name="project.name"
> value="${log4j.project.name}"/> <param name="jar.name"
> value="${log4j.jar}"/>
> </antcall>
> </target>
>
>
> <target name="get_jar" unless="present">
> .....
> </target>
>
> The problem is that when one of the files doesn't exists, the
> property is not set , and the value that the parameter take is
> literally "${log4j.jar.present}", and the target "get_jar" is never
> executed, because present is alredy set.
Move the available task to a target get_jar depends upon, something like
<target name="check_log4j">
<antcall target="get_jar">
<param name="jar" value="${log4j.jar}" />
....
</antcall>
</target>
<target name="check">
<available file="${jar}" property="present "/>
<echo message="${jar} present: ${present}" />
</target>
<target name="get_jar" unless="present" depends="check">
.....
</target>
Stefan
Ok! now it is working,
Thanks.