Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ant:如果属性包含某个字符串,如何失败_Javascript_Ant - Fatal编程技术网

Javascript Ant:如果属性包含某个字符串,如何失败

Javascript Ant:如果属性包含某个字符串,如何失败,javascript,ant,Javascript,Ant,我想编写一个ant宏,如果提供的属性包含某个字符串,它将调用fail任务。我知道如何在ant中进行字符串比较的唯一方法是使用javascript。我有这样的想法: <macrodef name="check-for-error"> <attribute name="input"/> <sequential> <echo message="@{input}"/> <script language=

我想编写一个ant宏,如果提供的属性包含某个字符串,它将调用fail任务。我知道如何在ant中进行字符串比较的唯一方法是使用javascript。我有这样的想法:

<macrodef name="check-for-error">
    <attribute name="input"/>
    <sequential>
        <echo message="@{input}"/>
        <script language="javascript">
            <![CDATA[
            var response= "@{input}";
            if(response.indexOf("FAIL") !=-1){
                project.setProperty("error","true");
            }
            ]]>
        </script>
        <fail message="INPUT FAILED" if="${error}"/>
    </sequential>
</macrodef>

这种方法的问题是,我在javascript中设置了一个全局属性,ant不允许您重置属性。我知道ant有能力设置本地属性。如何从javascript中访问本地属性?还是有更好的方法一起完成这一切?


<condition property="missing-properties">
    <matches pattern="YOUR-PATTERN" string="${THE-ATTRIBUTE}"/>
</condition>
<fail message="Input failed!" if="missing-properties"/>

本地化属性所需做的全部工作是在Javascript之前为其调用

例如:

<sequential>
    <echo message="@{input}"/>
    <local name="error"/>        <!-- Added this line. -->
    <script language="javascript">
    ...

...
此外,您还可以在Javascript中将属性以电子方式本地化:

<script language="javascript"><![CDATA[
    localiser = project.createTask( "local" );
    localiser.setName( "error" );
    localiser.perform( );

    ...