gpt4 book ai didi

Ant exec 结果属性不起作用

转载 作者:行者123 更新时间:2023-12-04 05:42:27 24 4
gpt4 key购买 nike

我正在使用 Ant exec 调用批处理文件任务并在 resultpropery 中设置结果.但是返回值永远不会出现在 Ant 中。下面是我的代码

<property name="BuildErrorCode" value="abc"/>
<exec executable="cmd" resultproperty="BuildErrorCode" failonerror="false"
dir="C:\workspace\build\">
<arg value="/c"/>
<arg value="cmake_cross_compile.bat"/>
</exec>

<echo message="Error Code:=${BuildErrorCode}" />

我通过以下方式退出批处理脚本:
if %errorlevel% neq 0 exit /b %errorlevel%

当脚本运行时,我总是得到 abc作为值而不是批处理文件的返回值。我的批处理文件返回 2现在我必须停止构建

我想做以下事情:
  • 如果返回值是 <> 0,那么我必须使构建失败,这现在不会发生。

  • 知道如何让他返回值并使 Ant 构建失败吗?

    最佳答案

    exec任务resultproperty将捕获 cmd 解释器的退出代码。您在批处理文件中调用 exit 的方式并没有终止 cmd,它只是退出脚本。 cmd 的退出代码将不受影响,并保持为零。如果您只是删除 \b退出命令的选项您也将终止解释器并查看您提供的退出代码传播。

    if %errorlevel% neq 0 exit %errorlevel%

    如果失败,你可以使用 fail task ,也许是这样的:
    <fail message="cmake_cross_compile.bat exited non-zero">
    <condition>
    <not>
    <equals arg1="${BuildErrorCode}" arg2="0"/>
    </not>
    </condition>
    </fail>

    或者你可以设置 failonerror="true"exec任务立即失败。

    关于Ant exec 结果属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6758019/

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