ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Hatcher <jakarta-...@ehatchersolutions.com>
Subject Re: nested properties anyone?
Date Thu, 15 Aug 2002 17:54:50 GMT
 From chapter 10 of Java Development with Ant [1] (gotta make my plugs 
somehow!):

Copying properties
In section 3.10.1 we demonstrate an obscure way to dereference property 
values by using Ant's built-in capabilities. The ant-contrib [2] 
<propertycopy> task makes property dereferencing much cleaner and easier 
to understand. We have refactored the example we presented earlier to 
use <propertycopy>:

<target name="propertycopy">
   <property name="X" value="Y"/>
   <property name="Y" value="Z"/>
   <propertycopy name="A" from="${X}"/>
   <echo message="A = ${A}"/>
</target>

The value of ${X} is "Y". The from attribute of <propertycopy> refers to 
an Ant property name, "Y" in this example. The value of the property Y 
is "Z", so the output is "A = Z". This is a much nicer alternative than 
using the refid tricks.

[1] http://www.amazon.com/exec/obidos/ASIN/1930110588
[2] http://sourceforge.net/projects/ant-contrib/

	Erik



Matt Benson wrote:
> Agreed on nested properties expansion.
> 
> -Matt
> 
> --- bo@spamcop.net wrote:
> 
>>Problem:
>>>From the list of the predefined properties key=value
>>select one based on the
>>value of some other property and use it as a default
>>
>>Example:
>>I have a list of servers (hosts.properties), where
>>key is an actual hostname
>>(obtained from hostname command) and value is a
>>domain, e.g.
>>host_one=host_one.somewhere.com
>>host_two=host_two.some.place.else.com
>>I want to determine on which machine I'm running the
>>script and use a full
>>domain name further in the script.
>>
>>Solution?
>>1. <property file="hosts.properties"/>
>>2. <exec outputproperty="hostname"
>>executable="hostname"/>
>>3. Now I have a ${hostname} and I want to assign its
>>value to the property
>>build.host that I use in my script. My first
>>reaction was to do this:
>><property name="build.host" refid="${${hostname}}"/>
>>Well it didn't work because curleys are evaluated
>>only once and I'm getting the
>>value of build.host literaly as "${hostname}"
>>Is there any other way? Any way? 
>>And I think that it would be nice feature to
>>reevaluate the nested brackets
>>
>>Bob Stone
>>
>>--
>>To unsubscribe, e-mail:  
>><mailto:ant-user-unsubscribe@jakarta.apache.org>
>>For additional commands, e-mail:
>><mailto:ant-user-help@jakarta.apache.org>
>>
> 
> 
> __________________________________________________
> Do You Yahoo!?
> HotJobs - Search Thousands of New Jobs
> http://www.hotjobs.com
> 
> --
> To unsubscribe, e-mail:   <mailto:ant-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:ant-user-help@jakarta.apache.org>
> 
> 
> 



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


Mime
View raw message