在ant summary="true"
任务中是否存在replaceregexp
等效项,就像简单的ant replace
任务一样?
这是我的用例。我正在用replaceregexp任务替换ant替换任务,如下所示:
<replace dir="${dir}" summary="true" value="" token="Some Text">
<include name="**/*.jsp" />
</replace>
成为这个:
<replaceregexp byline="true">
<regexp pattern="Some\s*Text"/>
<substitution expression=""/>
<fileset dir="${dir}" includes="**/*.jsp"/>
</replaceregexp>
但是,我无法找到一种方法让我的ant构建输出已经完成的替换次数。 summary
没有replaceregexp
属性,文档也没有提供任何现成的建议。这可能吗?
答案 0 :(得分:2)
从阅读ReplaceRegexp任务的来源,没有这样的功能
ant184 =&gt; src / main / org / apache / tools / ant / taskdefs / optional / ReplaceRegExp.java,第351行:
protected void doReplace(File f, int options) throws IOException {
File temp = FILE_UTILS.createTempFile("replace", ".txt", null, true, true);
Reader r = null;
Writer w = null;
BufferedWriter bw = null;
try {
if (encoding == null) {
r = new FileReader(f);
w = new FileWriter(temp);
} else {
r = new InputStreamReader(new FileInputStream(f), encoding);
w = new OutputStreamWriter(new FileOutputStream(temp),
encoding);
}
BufferedReader br = new BufferedReader(r);
bw = new BufferedWriter(w);
boolean changes = false;
log("Replacing pattern '" + regex.getPattern(getProject())
+ "' with '" + subs.getExpression(getProject())
+ "' in '" + f.getPath() + "'" + (byline ? " by line" : "")
+ (flags.length() > 0 ? " with flags: '" + flags + "'" : "")
+ ".", Project.MSG_VERBOSE);
表示使用loglevel verbose记录替换:
ant -verbose -f yourfile.xml
或
ant -v -f yourfile.xml
获取ant source distribution file并简单地扩展任务doReplace()方法以获得所需的输出,例如,替换的计数器,由新任务属性'summary'控制false | true
您可以填写enhancement report并提交补丁,以便在下一个ant版本中为其他用户提供,更多详情here。