Java ant,从一个属性值指向另一个属性值
我在init目标中有一个任务,它创建了一个名为“TODAY”的属性: 我只是使用了错误的构造吗?如果我将它们分开并放入dir路径/etc中,似乎可以很好地解析属性(应该是这样的) 我的配置的整个相关部分:Java ant,从一个属性值指向另一个属性值,java,ant,properties,reference,Java,Ant,Properties,Reference,我在init目标中有一个任务,它创建了一个名为“TODAY”的属性: 我只是使用了错误的构造吗?如果我将它们分开并放入dir路径/etc中,似乎可以很好地解析属性(应该是这样的) 我的配置的整个相关部分: <property name="store.dir" value="target/${TODAY}"/> <target name="init"> <tstamp> <format propert
<property name="store.dir" value="target/${TODAY}"/>
<target name="init">
<tstamp>
<format property="TODAY" pattern="kk:mm:ss-MM-dd-yyyy" locale="en,US"/>
</tstamp>
<mkdir dir="bin"/>
<mkdir dir="doc"/>
<echo>Making dir : ${store.dir}</echo>
<mkdir dir="${store.dir}"/>
<copy includeemptydirs="false" todir="bin">
<fileset dir="src">
<exclude name="**/*.launch"/>
<exclude name="**/*.java"/>
</fileset>
</copy>
<copy includeemptydirs="false" todir="bin">
<fileset dir="JUnit">
<exclude name="**/*.launch"/>
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
生成目录:${store.dir}
有效:<project>
<tstamp>
<format property="TODAY" pattern="kk:mm:ss-MM-dd-yyyy" locale="en,US"/>
</tstamp>
<property name="store.dir" value="target/${TODAY}"/>
<echo>$${store.dir} => ${store.dir}</echo>
</project>
可能想要使用属性store.dir的目标在其依赖链中没有init目标?--在评论和编辑原始问题之后进行编辑--
正如fge在他的评论中已经提到的,store.dir的属性声明发生在调用无法工作的tstamp任务之前。像这样解决:
<target name="init">
<tstamp>
<format property="TODAY" pattern="kk:mm:ss-MM-dd-yyyy" locale="en,US"/>
</tstamp>
<property name="store.dir" value="target/${TODAY}"/>
...
</target>
...
这两行是在同一个文件中吗?是的,它们是,我已经用构建xmlUuh的相关部分更新了OP,您的store.dir
是在今天之后声明的
。。。我相信你的问题就在这里嗯,我实际上把echo任务放在了tstamp任务之后。。。我将用我的整个init目标更新主帖子
<property name="store.dir" value="target/${TODAY}"/>
<target name="init">
<tstamp>
<format property="TODAY" pattern="kk:mm:ss-MM-dd-yyyy" locale="en,US"/>
</tstamp>
<mkdir dir="bin"/>
<mkdir dir="doc"/>
<echo>Making dir : ${store.dir}</echo>
<mkdir dir="${store.dir}"/>
<copy includeemptydirs="false" todir="bin">
<fileset dir="src">
<exclude name="**/*.launch"/>
<exclude name="**/*.java"/>
</fileset>
</copy>
<copy includeemptydirs="false" todir="bin">
<fileset dir="JUnit">
<exclude name="**/*.launch"/>
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<project>
<tstamp>
<format property="TODAY" pattern="kk:mm:ss-MM-dd-yyyy" locale="en,US"/>
</tstamp>
<property name="store.dir" value="target/${TODAY}"/>
<echo>$${store.dir} => ${store.dir}</echo>
</project>
[echo] ${store.dir} => target/22:13:07-03-17-2014
<target name="init">
<tstamp>
<format property="TODAY" pattern="kk:mm:ss-MM-dd-yyyy" locale="en,US"/>
</tstamp>
<property name="store.dir" value="target/${TODAY}"/>
...
</target>