С.Зубарев
Создание Script Task в Ant
В Ant есть возможность выполнять задачи (Tasks) отличные от компиляции и сборки проекта. Например, когда нужно кроме сборки проекта записать в файл иерархию получившихся классов и т.д. Для этого существует Script Task, выполняющий код языков, которые поддерживают
Apache BSF или
JSR 223. Такими, например, являются javascript, groovy, beanshell, ruby и т.д.
Ниже приведен пример ant скрипта, записывающего в файл output.txt список всего содержимого указанной директории(в данном случае текущей) с помощью javascript:
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="ScriptProject" basedir="." default="def">
<property name="target.dir" value="."/>
<property name="output.file" value="output.txt"/>
<target name="def">
<script language="javascript"> <![CDATA[
importClass(java.io.File);
var dirName = project.getProperty("target.dir");
var outputFileName = ScriptProject.getProperty("output.file");
fecho = project.createTask("echo");
fecho.setFile(new File(outputFileName));
var outputResult = '';
var rootFile = new File(dirName);
var files = rootFile.listFiles();
for (var i=0; i< files.length; i++){
outputResult += files[i].getName()+'\n';
}
fecho.setMessage(outputResult);
fecho.perform();
]]></script>
</target>
</project>