我有一个给定扩展的脚本文件的简单语法,它转换为我想要创建的java类文件,每个文件包含一个可以通过反射调用的给定函数。
我想编写一个可以从ant脚本中调用的主函数,该脚本可以看到ant构建目录,遍历所有具有我的扩展名的文件,并将每个文件转换为我不放入的java文件bin目录,但在src目录包中,它包含带有我的扩展名的文件(脚本)。
这可能吗?
安迪
答案 0 :(得分:1)
以下示例说明如何在.java
目录中为src
目录中的每个.ext
文件创建bin
文件。
但是对于代码生成,我希望您需要实现自定义Ant任务。
<project default="test">
<target name="test">
<copy todir="src">
<fileset dir="bin">
<include name="**/*.ext"/>
</fileset>
<globmapper from="*.ext" to="*.java"/>
<filterchain>
<!--
You will do some custom filtering
to create your new Java src file.
This is just for illustration.
-->
<headfilter lines="1"/>
<tokenfilter>
<replaceregex pattern=".*" replace="your new content"/>
</tokenfilter>
</filterchain>
</copy>
</target>
<!-- use with care! -->
<target name="clean">
<delete dir="src">
<include name="**/*.java"/>
</delete>
</target>
</project>
答案 1 :(得分:0)
尝试ant-contrib项目。它有一个采用文件集的任务。然后你可以随心所欲地做任何事情:
<ac:for param="file">
<fileset ... />
<sequential>
<echo message="@{file}" />
</sequential>
</ac:for>
警告:我是这个项目的所有者。它尚未采用ant 1.7 / 1.8结构(即资源集合),但这项工作正在进行中。