0

所以我有类似下面的代码

<target name="testIt">
    <property name="appname" value="ApplicationOne"/>
    <property name="ApplicationOne-serveraddress" value="http://ApplicationOne.com"></property>
    <property name="ApplicationTwo-serveraddress" value="http://ApplicationTwo.com"></property>
    <echo message="${${appname}-serveraddress}"></echo>
</target>

有没有办法做到这一点?显然,这不起作用

4

2 回答 2

2

这篇关于在 ant 中使用 antlib 道具的博客文章帮助我解决 了大括号的嵌套问题,基本上你必须下载 jar 并包含

<project xmlns:props="antlib:org.apache.ant.props">
  <typedef uri="antlib:org.apache.ant.props"
    resource="org/apache/ant/props/antlib.xml"
    classpath="ant-props-1.0Alpha.jar"/>      
 <propertyhelper>
  <props:nested />
</propertyhelper>

不要忘记 xmlns。我在这里下载了jar

于 2012-04-17T10:19:53.713 回答
1

您可以使用其他人的值定义属性。那是你要找的吗?

<target name="testit">
    <property name="a" value="a"/>
    <property name="b" value="b"/>
    <property name="aandb" value="${a}{b}"/>
    <echo message="hello ${aandb}"/>
</target>

新的 ant 支持一种使属性本地化的方法。

<target name="testit">
    <property name="a" value="a"/>
    <property name="b" value="b"/>
    <local name="aandb" />
    <property name="aandb" value="${a}{b}"/>
    <echo message="hello ${aandb}"/>
</target>

这有助于避免不可变属性引起麻烦的情况。

于 2012-04-10T10:31:34.007 回答