我有一个Ant
脚本文件,其中我使用concat
任务在属性文件中定义的指定包中创建Java源文件。
ma.package=com.my.package
在Ant
脚本,我调用:
<concat destfile="./${prject.root}/${ma.package}/MyClass.java">
但是,MyClass.java
创建在子文件夹com.my.package
中,而不是文件夹结构commypackage
中。如何解决这个问题?
我在Windows XP下使用Eclipse Helios
您可以使用PathConvert和嵌套的UnpackageMapper来将包名转换为路径。例如:
<project default="test">
<property name="ma.package" value="com.my.package"/>
<target name="test">
<pathconvert property="ma.package.dir">
<path path="${ma.package}"/>
<unpackagemapper from="*" to="*"/>
</pathconvert>
<echo message="ma.package : ${ma.package}"/>
<echo message="ma.package.dir : ${ma.package.dir}"/>
</target>
</project>
输出为:
Buildfile: C:tmpantbuild.xml
test:
[echo] ma.package : com.my.package
[echo] ma.package.dir : C:tmpantcommypackage
所以你可以在concat中使用转换后的属性值:
<concat destfile="${ma.package.dir}/MyClass.java">