在ant replaceregexp任务中输出替换摘要



蚂蚁replaceregexp任务中是否存在类似于简单蚂蚁replace任务中的summary="true"等价物?

这是我的用例。我正在用replaceregexp任务替换ant替换任务,如下所示:

<replace dir="${dir}" summary="true" value="" token="Some Text">
    <include name="**/*.jsp" />
</replace>

变成这样:

<replaceregexp byline="true">
    <regexp pattern="Somes*Text"/>
    <substitution expression=""/>
 <fileset dir="${dir}" includes="**/*.jsp"/>
</replaceregexp>

然而,我找不到一种方法来让我的ant构建输出已经进行的替换的数量。replaceregexp没有summary属性,文档也没有提供任何现成的建议。这可能吗?

从ReplaceRegexp任务的源代码中没有这样的功能
ant184=>src/main.org/apache/tools/ant/taskdefs/可选/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源分发文件,并简单地扩展tasks doReplace()方法以获得所需的输出,例如,由新任务属性'summary'false|true
控制的替换计数器你可以填写一份增强报告并提交一个补丁,以便在下一个蚂蚁版本中为其他用户提供,更多详细信息请点击此处。

最新更新