2013-02-07 109 views
2

输出替换摘要是否有一个summary="true"等效于蚂蚁replaceregexp任务就像在简单的蚂蚁replace任务?在蚂蚁replaceregexp任务

这是我的使用案例。我更换一只蚂蚁用replaceregexp任务替换的任务,像这样:

<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构建输出的替换数这已经制成。 replaceregexp没有summary属性,并且文档不提供任何就绪建议。这可能吗?

回答

2

从阅读ReplaceRegexp任务的来源,没有这样的功能。
ant184 =>的src /主/组织/阿帕奇/工具/蚂蚁/任务定义/可选择的/ 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); 

装置使用记录等级详细记录的替换:
ant -verbose -f yourfile.xml

ant -v -f yourfile.xml

获取ant source distribution file,只是延长了任务doReplace()方法来获得您想要的输出,例如,对于更换一个计数器,在一个新的任务控制tribute'summary'false | true
您可以填写一个enhancement report并提交一个补丁,以便在下一个ant版本中提供给其他用户,更多详细信息here