我的初始化目标中有一个任务,它创建一个名为“ TODAY”的属性:
<tstamp>
<format property="TODAY" pattern="kk:mm:ss-MM-dd-yyyy" locale="en,US"/>
</tstamp>
还有一个属性,我希望将生成的文件保存在该属性中,名为“ store.dir”:
<property name="store.dir" value="target/${TODAY}"/>
理想情况下,这就是我想要的...引用TODAY属性的store.dir属性,这样我可以通过修改一个属性(而不是执行每个jar任务)来重新定位要放置程序包的位置。
尽管这似乎不起作用...回声产生了这个:
[echo] Making dir : target/${TODAY}
我在这里使用错误的结构吗?如果我将它们分开并将它们放到dir路径/ etc中,似乎可以很好地解析属性(应该如此)。
我的配置的整个相关部分:
<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
也许想要使用属性store.dir的目标在其依赖链中没有init目标?
-注释后编辑和原始问题的编辑-
正如fge在其注释中已经提到的那样,在调用tstamp任务之前,您的store.dir属性声明发生在无法正常工作的地方。像这样修复它:
<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>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句