我正在编写一个ANT脚本来构建我的iOS应用程序。我希望用户输入应为其创建ipa文件的环境名称。例如开发或生产或QA或UAT。我有以下代码片段来接受用户输入并将其存储在名为environment的属性中:
<input
message="Enter targeted environment (dev or QA1 or QA2 or UAT1 or UAT2 or staging or perf or prod)"
addproperty="environment"
/>
用户输入环境名称后,我必须检查用户输入的内容。然后我必须根据用户输入调用不同的目标。类似的东西:
if (environment== "development")
// call dev target
else if (environment== "production")
// call prod target
else if (environment== "QA")
// call QA target
else if (environment== "UAT")
// call UAT target
我怎样才能做到这一点?有人可以帮帮我......谢谢..
答案 0 :(得分:3)
我强烈建议你放弃接受用户输入的计划。构建不应该接受用户输入,如果你想自动化它会发生什么?我假设所有构建都没有交互输入。
您最好的计划是始终指定您想要的目标。
ant QA
下一个最好的方法是在命令行上指定environment属性
ant -Denv="dev"
如果在蚂蚁中没有。你可能被引诱到ant-contrib,这不是道路。如果你发现自己需要它,可能你会更适合使用不同的构建工具或编写自己的ant任务。
如果您想要实施您描述的方案,可以设置条件来设置属性,然后更改目标以使用if
属性有条件地运行它们,如下所示:
<condition property="env.is.dev">
<equals arg1="${env}" arg2="dev"/>
</condition>
<target name="dev" if="${env.is.dev}">
if属性在设置属性后执行目标。