Ant 简明教程
Ant - Custom Components
Ant 允许轻松创建和使用自定义组件。可通过实现 Condition、Selector、Filter 等接口来创建自定义组件。一旦类准备就绪,我们便可以使用 typedef 在 build.xml 内创建该组件,以便在任何目标下使用。
Syntax
首先,将一个类定义为 Ant 自定义组件,比如 TextSelector.java,然后在 build.xml 中定义一个选择器。
<typedef name="text-selector" classname="TextSelector" classpath="."/>
然后,在目标内使用该组件。
<target name="copy">
<copy todir="${dest.dir}" filtering="true">
<fileset dir="${src.dir}">
<text-selector/>
</fileset>
</copy>
</target>
Example
使用以下内容创建 TextSelector.java,将其放置在与 build.xml 相同的位置 −
import java.io.File;
import org.apache.tools.ant.types.selectors.FileSelector;
public class TextFilter implements FileSelector {
public boolean isSelected(File b, String filename, File f) {
return filename.toLowerCase().endsWith(".txt");
}
}
在 src 目录中创建一个 text1.txt 和一个 text2.java。目标是将仅 .txt 文件复制到构建目录。
使用以下内容创建 build.xml −
<?xml version="1.0"?>
<project name="sample" basedir="." default="copy">
<property name="src.dir" value="src"/>
<property name="dest.dir" value="build"/>
<typedef name="text-selector" classname="TextSelector" classpath="."/>
<target name="copy">
<copy todir="${dest.dir}" filtering="true">
<fileset dir="${src.dir}">
<text-selector/>
</fileset>
</copy>
</target>
</project>