📅  最后修改于: 2020-12-26 13:38:50             🧑  作者: Mango
Ant使我们可以根据我们的需求创建自定义组件。定制组件可以是条件,过滤器,选择器等,并且在ant核心api之外定义。
定制组件的行为类似于Ant核心组件。
定制组件是可以实现类和接口的常规Java类。看起来就像编写一个自定义任务,该任务通过setter和getter方法定义属性。
这是一个三个阶段的过程。首先创建一个Java类,然后定义
为条件创建一个Java类。
package com.javatpoint;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.condition.Condition;
public class AllUpperCaseCondition implements Condition {
private String value;
// The setter for the "value" attribute
public void setValue(String value) {
this.value = value;
}
// This method evaluates the condition
public boolean eval() {
if (value == null) {
throw new BuildException("value attribute is not set");
}
return value.toUpperCase().equals(value);
}
}
现在通过指定Java类来定义
这样,我们成功创建了一个自定义元素
// build.xml
在上面的示例中,我们创建了一个自定义条件元素,现在我们将创建一个自定义选择器。选择器是数据类型,要创建自定义选择器,它必须实现
org.apache.tools.ant.types.selectors.FileSelector接口。此接口具有一个必须重写的方法isSeletected(基于文件的File,字符串文件名,文件文件)。自定义选择器的示例如下。
// Java类
package com.javatpoint;
import java.io.File;
import org.apache.tools.ant.types.selectors.FileSelector;
public class JavaSelector implements FileSelector {
public boolean isSelected(File b, String filename, File f) {
return filename.toLowerCase().endsWith(".java");
}
}
//类型定义
// build.xml
就像一样,我们也可以创建自定义过滤器。