我在我的build.xml
中有<path id="...">
。在调用编译器之前,我想验证类路径上的每个jar /目录是否存在,并打印出缺少的警告。有人知道现有的解决方案还是需要为此编写我自己的任务?蚂蚁中的类路径验证
好吧,我决定去一个自定义的任务。这是在任何情况下,需要过这样一件事:
import java.io.File;
import java.util.Iterator;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.Reference;
import org.apache.tools.ant.types.ResourceCollection;
import org.apache.tools.ant.types.resources.Resources;
public class CheckClasspathTask extends Task {
private Reference reference;
public CheckClasspathTask() {
}
public void setRefId(Reference reference) {
this.reference = reference;
}
public void execute() throws BuildException {
Resources resources = new Resources();
resources.setProject(getProject());
resources.add((ResourceCollection) reference.getReferencedObject());
boolean isFirst = true;
for (Iterator i = resources.iterator(); i.hasNext();) {
String f = i.next().toString();
if (!new File(f).exists()) {
if (isFirst) {
isFirst = false;
System.out.println("WARNING: The following entries on your classpath do not exist:");
}
System.out.println(f);
}
}
}
}
我似乎记得传递一个路径对象到一个自定义任务很容易 - 我想这就是你的意思是“传递目录列表”? – araqnid 2009-04-15 23:46:35
@araqnid是的,这就是我的意思 – VonC 2009-04-16 10:25:46