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