为了账号安全,请及时绑定邮箱和手机立即绑定

在不破坏东西的情况下将项目添加到蚂蚁的路径

在不破坏东西的情况下将项目添加到蚂蚁的路径

当年话下 2023-03-31 17:01:52
在 中ant,如何PATH在不破坏内容的情况下添加内容/usr/bin?我直接从 Apache ant 文档开始工作以应用到PATH https://ant.apache.org/manual/Tasks/exec.html(示例部分)。参考的文档searchpath描述如下:searchpath: 当此属性为 时true,解析可执行文件的位置时将搜索系统路径环境变量。从 Ant 1.6.3 开始...但searchpath似乎也无助于解决这个特定问题。举个例子build.xml:<project name="Sample" default="init" basedir=".">  <description>Testing PATH with exec</description>  <target name="init">    <exec executable="./test.sh">      <env key="PATH" value="${env.PATH}:/foo"/>    </exec>  </target></project>以及以下 shell 脚本test.sh:#!/bin/bashecho "Hello!"  # This worksuname          # If PATH is edited, shows "uname: command not found"输出:init:     [exec] Hello!     [exec] ./test.sh: line 3: uname: command not found     [exec] Result: 127...但是,如果我注释掉它,<env key="PATH" value="${env.PATH}:/foo"/>它就可以正常工作。你如何添加PATH而不破坏东西?我正在 MacOS 10.14.5“Mojave”上使用 AdoptOpenJDK 11.0.3 和 Apache Ant 1.10.6 进行测试。
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

找到了。Apache Ant 文档假定您在代码中的某处调用了以下内容:


<property environment="env"/>

没有这个,PATH将被设置为文字 string ${env.PATH},从而破坏该PATH值。$PATH这可以通过回显shell 脚本中的值来观察。


他们的文档在示例中有这个,但在上面的示例中遗漏了它,导致了这个问题。


<project name="Sample" default="init" basedir=".">

  <description>Testing PATH with exec</description>

  <target name="init">

  <property environment="env"/><!-- THIS WAS MISSING -->

    <exec executable="./test.sh">

      <env key="PATH" value="${env.PATH}:/foo"/>

    </exec>

  </target>

</project>


查看完整回答
反对 回复 2023-03-31
  • 1 回答
  • 0 关注
  • 68 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信