You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编辑build-samples.xml在tar解压完成后执行sed修改Makefile

修改build-samples.xml实现解压后自动执行sed替换

你只需要在extract目标的tar解压执行块之后,追加一个新的<exec>节点调用sed命令即可,原有逻辑不需要改动。

注意两个要点:

  • 该target本身已经配置了unless="host.isWindows"属性,新增的sed逻辑会自动仅在非Windows环境下运行,不需要额外添加环境判断
  • Ant中执行shell命令建议通过sh -c包裹命令内容,避免引号、变量解析出现转义问题,同时保留failonerror="true"配置,sed执行失败时会直接中断构建,方便排查问题

修改完成后的完整target代码如下:

<target name="extract" unless="host.isWindows">
        <echo>#####################################################################################</echo>
        <echo># Extracting ${loads.dir}/${deploy.version}/${clientTar} to ${build_samples_dir}</echo>
        <echo>#####################################################################################</echo>
        <exec
            dir="${build_samples_dir}"
            executable="gunzip"
            failonerror="true">
            <arg line="${clientTar}.tar.gz"/>
        </exec>
        <exec
            dir="${build_samples_dir}"
            executable="${GNU_TAR}"
            failonerror="true">
            <arg line="-xf ${clientTar}.tar"/>
        </exec>
        <!-- 解压完成后替换Makefile中的编译参数 -->
        <exec
            executable="sh"
            failonerror="true">
            <arg line="-c"/>
            <arg line="sed -i'' -e 's/SIXTY_FOUR_COMPAT:=-m32/SIXTY_FOUR_COMPAT:=/g' ${build_samples_dir}/Linux-native/opt/client-100.0.38.601/Intro/Makefile"/>
        </exec>
    </target>

如果你后续Makefile里的客户端版本号会随构建参数变化,可以把路径里写死的100.0.38.601替换成对应的Ant变量,避免版本升级后还要手动改路径。

内容的提问来源于stack exchange,提问作者sara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 09:39:17