2012-12-06 21 views
1

如何编写一个以文件为输入并用''替换所有空白字符的蚂蚁目标(即我需要一个蚂蚁目标来“缩小”输入文本文件并将其写入磁盘)?是否可以写一个调用java函数的蚂蚁目标?

我知道,在Java中这是一个简单的做这样的事情:

public void minify(String originalString){ 
    String minifiedFile = originalString.replaceAll(" ", ""); 
} 

但我如何获得Ant目标调用“缩小()”功能,我如何传递一个参数“originalString “在蚂蚁?

希望所有/任何意见。

+1

它通常以另一种方式工作around:你在Java中为Ant实现一个自定义任务。请参阅http://ant.apache.org/manual/develop.html和http://ant.apache.org/manual/tutorial-writing-tasks.html。 –

+0

如果'sed'是一个选项(即你在Linux或Mac上),它会容易得多。 – jahroy

回答

2

您是否试过Ant-Contrib的PropertyRegex标记?这将对给定的字符串执行'正则表达式替换'。

但是,这听起来像你可能会试图做到这一点,在这种情况下,我会写一个完整的Java程序(不只是一个单一的功能),并调用该程序与蚂蚁的内置Java任务。

另外,正如@jahroy在评论中建议的那样,您可以使用Ant的内置exec任务来调用sed。这实际上可能是最简单的解决方案。

1

最近版本的ant支持常规expression based string replacemen t。 这是来自蚂蚁网站的代码示例

<replaceregexp match="\s+" replace=" " flags="g" byline="true"> 
    <fileset dir="${html.dir}" includes="**/*.html"/> 
</replaceregexp> 

对于原始问题 - 是的。可以通过

选项3(像sed调用程序)将导致的问题构建环境的长期维护,尽管