EchoXML - это муравейный тест, в котором уже указано, что он принимает вложенную строку XML в качестве своего содержимого, выводя это содержимое непосредственно в файл (или на консоль).Таким образом, согласно документации, это не удовлетворяет вашим потребностям.
Тем не менее, довольно просто изменить стандартную задачу ant, чтобы сделать это с помощью расширений javax xml и вместе с API-интерфейсом File.
Сначала посмотрите http://ant.apache.org/manual/Tasks/echoxml.html, и подтвердите, что EchoXML делает не то, что вам нужно.
Теперь простое решение состоит в том, чтобы реализовать собственную задачу записи XML ... просто написать свой собственный класс:
public class MyFileTreeWriter extends Task {
public void execute() {
File dirs = new File("./");
//Alternatively, you can use apache's FileUtils directory walkers https://commons.apache.org/io/api-1.4/index.html?org/apache/commons/io/DirectoryWalker.html
// Psuedo code below, uses standard javax.xml.* packages ...
for (String file : dirs.listFiles()){
Element em = document.createElement("file");
em.appendChild(document.createTextNode(file);
rootElement.appendChild(em);
}
}
И затем добавить это в свою сборку:
<target name="use" description="MyFileTreeWriter task" depends="jar">
<taskdef name="writeDirs" classname="MyFileTreeWriter" classpath="${ant.project.name}.jar"/>
</target>