Ant-如何比较字符串列表?

Ant-如何比较字符串列表?,ant,Ant,我从运行时的值(例如:windows,ios)获取平台,project.SuppoortedPlatforms在build.properties(例如:android,ios)下声明。如何比较字符串列表? 有人能帮我解决这个问题吗 谢谢, sandhiya您正在一个以逗号分隔的平台列表上循环,并且对于每个平台,您都要检查它是否包含在项目中支持的平台列表中。支持平台。这应该是这样的: <target name="build"> <for list="${platform}"

我从运行时的值(例如:windows,ios)获取平台,project.SuppoortedPlatforms在build.properties(例如:android,ios)下声明。如何比较字符串列表? 有人能帮我解决这个问题吗

谢谢,
sandhiya

您正在一个以逗号分隔的平台列表上循环,并且对于每个平台,您都要检查它是否包含在
项目中支持的平台列表中。支持平台
。这应该是这样的:

 <target name="build">
 <for list="${platform}" param="platform" trim="true">
 <sequential>
 <if>
 <equals arg1="${platform}" arg2="${project.SuppoortedPlatforms}" />
 <then>
 <antcall target="package.${platform}" />
 </then>
 </if>
 </sequential>
 </for>
 </target>

应使用
@
而不是
$
访问循环中的参数。另外,为了可读性,最好重命名参数(
platformParam
而不是
platform
)。

我自己尝试使用嵌套for循环,而不是使用contains任务,它工作得很好。

如果答案有效,请接受答案。可能会投赞成票。请参阅常见问题解答:
<for list="${platform}" param="platformParam" trim="true">
    <sequential>
    <if>
       <contains string="${project.SuppoortedPlatforms}" substring="@{platformParam}" />
        <then>
          <antcall target="package.@{platformParam}" />
        </then>
      </if>
       </sequential>
     </for>
  Instead of using contains task, i myself tried with the nested for loop, its cool working fine. 


  <for list="${platforms}" param="platformparam" trim="true">
 <sequential>
    <for list="${project.SupportedPlatforms}" param="supplatformparam" trim="true">
    <sequential>
        <if>
        <equals arg1="@{platformparam}" arg2="@{supplatformparam}" />
        <then>
            <antcall target="package.@{platformParam}" />
        </then>
        </if>
    </sequential>
    </for>
</sequential>
</for>