2

蚂蚁任务中是否有类似简单蚂蚁任务的summary="true"等价物? replaceregexpreplace

这是我的用例。我正在用 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 build 输出已进行替换的数量的方法。没有summary属性replaceregexp,文档也没有提供任何现成的建议。这可能吗?

4

1 回答 1

2

从阅读 ReplaceRegexp 任务的来源来看,没有这样的功能。
ant184 => 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 源分发文件并简单地扩展任务 doReplace() 方法以获得所需的输出,例如替换计数器,由新任务属性“summary”控制 false|true
您可以填写增强报告并提交一个补丁,使其在下一个 ant 版本中可供其他用户使用,更多详细信息请点击此处

于 2013-02-07T21:05:46.543 回答