ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "CheeYang Chau" <cyc...@gmail.com>
Subject Having problem using property to in macrodef if invoke for more than one time
Date Thu, 27 Mar 2008 05:51:23 GMT
Hi,

I love the macrodef task. However, it has a weakness.  We must be very
careful if using property within the macrodef.  I face problem with a
macrodef that is more complicated than the following example.  I have
to use dirname and condition in my macrodef, but it cause problem if I
invoke macrodef for more than one time as the property has been set
for the first time.  Here is an example that trying to replay the
situation I face:

	<macrodef name="a">		
		<attribute name="module"/>
		<sequential>						
			<property name="myvalue" value="@{module}"/>
			<echo>${myvalue}</echo>
		</sequential>
	</macrodef>
	
	<target name="build">
		<a module="venus"/>
		<a module="mars"/>
	</target>

I expect the output should be

[echo] venus
[echo] mars

but it turn out:

[echo] venus
[echo] venus

I think this is a common issue using macrodef and there are some
temporary solution to pass a temporary property name to the macrodef.
This is not feasible in my situation as I need to pass more than 5 to
10 properties to my macrodef.

Some other solution is using local property but I couldn't find this
task.  I am using ANT 1.7.0.

Any solution?  Please advice.  Thank you very much.

-- 
Best regards,
Chau Chee Yang

E Stream Software Sdn Bhd
URL: www.sql.com.my
SQL Financial Accounting

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message