私はantでインラインjavascriptを書いています。このスクリプトは、ディレクトリをスキャンし、指定されたタイムスタンプに関して最新ではないファイルの名前を出力します。
<script language="javascript"> <![CDATA[
importPackage(Packages.java.lang);
importPackage(Packages.org.apache.commons.io.FileUtils);
importClass(Packages.java.io.File);
importClass(Packages.java.util.Iterator);
var path = "D:\DirectoryToScan\";
var timeToCompare = buildServers.getProperty("buildStartTime");
var invocationTime = new Date(timeToCompare );
invocationTime = invocationTime.getTime();
var directoryToSearch = new File(path );
//CODE BREAKS HERE. NONE OF THE SUBSEQUENT LINES EXECUTE
var fileIterator = FileUtils.iterateFiles(directoryToSearch, new String[]{"pdf","html"} , true);
//iterate through files and directories in builtDocs folder and return false if any of the files is older than invocation time
while (fileIterator.hasNext()) {
var doc = fileIterator.next();
if ((!FileUtils.isFileNewer(doc, invocationTime))) {
return false;
}
}
]]> </script>
FileUtils への最初の呼び出しが壊れていることに気付きました。また、いくつかの単純なクラスを使用してみましたが、アクセスできず、インポートステートメントがカスタムクラスに対して機能していないか、明らかにここでアクセスできないパッケージ (apache.tools.ant.util.FileUtils など) に属しているようです。
クラスにアクセスする前に、クラスを正しくロードするためにここで行う必要があることはありますか?