如何在Ant中获得正则表达式匹配的布尔结果?

时间:2010-04-09 16:46:26

标签: regex ant

在Ant中是否有办法只使用正则表达式搜索文件中的某行,如果匹配则不会得到布尔结果?

我想通过日志文件查看错误行。如果存在错误行,我想执行一些额外的步骤。

在最坏的情况下,我可以使用Script tag但是如果Ant有办法可以避免使用它。

2 个答案:

答案 0 :(得分:2)

在Ant文档中进行了一些搜索之后,我想出了一个解决这个问题的方法。获取与正则表达式匹配的文件的长度。如果大于0,请执行额外步骤。

<if>
  <length when="greater" length="0">
    <fileset file="${build.log}">
      <containsregexp expression="\[java\].*error"/>
    </fileset>
  </length>
  <then>
    <!-- perform additional steps -->
  </then>
</if>

我发现Ant有matches condition但无法使用它,因为我正在使用Ant 1.6.5。

答案 1 :(得分:0)

要使用if标记,您需要在我的情况下使用下面的taskdef:

<taskdef resource="net/sf/antcontrib/antcontrib.properties">
        <classpath>
            <pathelement location="./ant-contrib.jar"/>
        </classpath>
    </taskdef>