我在我的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