私はbuild.xml
に<path id="...">
を持っています。コンパイラを起動する前に、クラスパス上のすべてのjar /ディレクトリが存在することを確認し、欠落したものを含む警告を出力します。誰かが既存のソリューションを知っているのですか、それとも私自身のタスクを書く必要がありますか?antでのクラスパス検証
OK、私はカスタムタスクに行くことにしました。
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
@araqnidはい、それは私が意味したことです – VonC