0

对于给定扩展名的脚本文件,我有一个简单的语法,它可以转换为我想要创建的 java 类文件,每个文件都包含一个可以通过反射调用的给定函数。

我想编写一个可以从 ant 脚本调用的 main 函数,该脚本可以看到 ant 构建目录,遍历所有具有我的扩展名的文件,并将每个文件转换为我没有放在 bin 目录中的 java 文件但是在包含我的扩展名的文件(脚本)的 src 目录包中。

这可能吗?

安迪

4

2 回答 2

1

这是一个示例,说明如何在目录中为目录中的每个文件创建一个.java文件。src.extbin

但是对于代码生成,我希望您需要实现一个自定义 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>
于 2012-05-31T09:08:12.940 回答
0

试试 ant-contrib 项目。它有一个接受文件集的任务。然后你可以用它做任何你想做的事情:

<ac:for param="file">
  <fileset ... />
  <sequential>
    <echo message="@{file}" />
  </sequential>
</ac:for>

警告:我是这个项目的所有者。它尚未采用 ant 1.7/1.8 构造(即资源集合),但这项工作正在进行中。

于 2012-05-31T03:44:02.480 回答