使用Ant,如果不以没有ant-contrib的特定字符串开头,则为Fail

时间:2014-03-10 21:44:45

标签: ant

我是Ant脚本的新手,我在SUSe Linux 11上的版本是1.6.5,你能帮忙实现以下目标

       <fileset dir="${target.location}" includes  = "${file.list}"/>

这里target.location是一个目录,由用户从属性文件作为输入传递。现在我需要编写一个验证来确保目录位置始终以/ properties开头。

用户可以传递/ properties / / 之类的内容,但起始字符串应始终为&#34; / properties&#34;或者将错误抛给用户并退出,我不能使用ant-contrib,因为将任何库添加到现有的ant应该经过大量的审批过程。

1 个答案:

答案 0 :(得分:1)

您可以使用javascript来实现自定义脚本条件检查。对Javascript的支持来自JVM,因此不需要额外的jar:

<project name="demo" default="check">

  <property name="target.location" value="/properties/some/path"/>

  <condition property="found.prefix">
    <scriptcondition language="javascript">
      self.setValue(String(project.getProperty("target.location")).indexOf("/properties")==0)
    </scriptcondition>
  </condition>

  <target name="check">
    <fail message="target.location must be prefixed with '/properties'" unless="found.prefix"/>
  </target>

</project>