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