我的init目标中有一个任务,它创建一个名为" TODAY" :
<tstamp>
<format property="TODAY" pattern="kk:mm:ss-MM-dd-yyyy" locale="en,US"/>
</tstamp>
我希望我的构建文件驻留的属性名为&#34; store.dir&#34; :
<property name="store.dir" value="target/${TODAY}"/>
理想情况下,这就是我想要的... store.dir属性引用TODAY属性,这样我就可以通过修改一个属性而不是遍历每个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>
答案 0 :(得分:1)
作品:
<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目标?
- 评论后编辑和编辑原始问题
正如他在评论中已经提到的那样,你在调用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>