给定一个ant文件集,我需要对它执行一些类似sed的操作,将其压缩为多行字符串(每个文件实际有一行),并将结果输出到文本文件。
我在寻找什么蚂蚁任务?
答案 0 :(得分:5)
Ant script任务允许您使用脚本语言实现任务。如果安装了JDK 1.6,Ant可以执行JavaScript而无需任何其他依赖库。 JavaScript代码可以读取文件集,转换文件名,并将它们写入文件。
<fileset id="jars" dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
<target name="init">
<script language="javascript"><![CDATA[
var out = new java.io.PrintWriter(new java.io.FileWriter('jars.txt'));
var iJar = project.getReference('jars').iterator();
while (iJar.hasNext()) {
var jar = new String(iJar.next());
out.println(jar);
}
out.close();
]]></script>
</target>
答案 1 :(得分:3)
答案 2 :(得分:1)
看起来你需要组合任务:
这会删除文件的'\ r'和'\ n'字符并将其加载到属性中:
<loadfile srcfile="${src.file}" property="${src.file.contents}">
<filterchain>
<filterreader classname="org.apache.tools.ant.filters.StripLineBreaks"/>
</filterchain>
</loadfile>
加载文件后,将它们连接到另一个文件:
<concat destfile="final.txt">
...
</concat>
在 concat 内使用 propertyset 来引用文件内容:
<propertyset id="properties-starting-with-bar">
<propertyref prefix="src.file"/>
</propertyset>
答案 3 :(得分:0)