gpt4 book ai didi

if-statement - 如何有条件地设置exec任务的arg值?

转载 作者:行者123 更新时间:2023-12-04 04:52:34 25 4
gpt4 key购买 nike

我有一个应该修改的 Ant 构建脚本。具体来说,我应该将Subversion check out 作为条件:当前仅 check out 主干,如果需要,新版本应 check out 给定的分支。

<target name="do-svn-checkout" depends="init"
<property name="branch" value=""/>
<exec executable="svn">
<arg value="checkout"/>
<arg value="-r"/>
<arg value="HEAD"/>
<arg value="http://t01/java/trunk"/>
<arg value="zzz"/>
<arg value="--password"/>
<arg value="xxx"/>
<arg value="--username"/>
<arg value="yyy"/>
</exec>
</target>

将通过命令行设置 branch属性,例如 -Dbranch=mybranch

如果 branch属性为空,则应 check out 干线,但如果该属性具有任何其他值,则应 check out 相应的分支,如 http://t01/svn/hlfg/HLFG/java/branch/the-value-of-the-property。因此,应根据属性来修改 svn调用的相应arg值。

是否可以使用基本的Ant解决此问题,或者我需要使用内联脚本?

最佳答案

当使用Ant> = 1.9.3时,这就是the new if/unless feature introduced with Ant 1.9.1的小菜一碟
(但是由于Ant 1.9.1中的错误see this answer for details,您至少应该使用Ant 1.9.3)

不要忘记激活该功能的 namespace ,例如:

<project
xmlns:if="ant:if"
xmlns:unless="ant:unless"
>

<property name="foobar" value=" "/>

<echo if:blank="${foobar}">foobar blank !</echo>
<echo unless:blank="${foobar}">foobar not blank !</echo>

</project>

在您的情况下,例如:
<target name="do-svn-checkout" depends="init"
<property name="branch" value=""/>
<exec executable="svn">
<arg value="checkout"/>
<arg value="-r"/>
<arg value="HEAD"/>
<arg value="http://t01/java/trunk" if:blank="${branch}">
<arg value=".." unless:blank="${branch}">
<arg value="zzz"/>
<arg value="--password"/>
<arg value="xxx"/>
<arg value="--username"/>
<arg value="yyy"/>
</exec>
</target>

关于if-statement - 如何有条件地设置exec任务的arg值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25864709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com