通过调用shell脚本来设置ant属性?

Nim*_*Nim 7 ant properties

有没有办法通过捕获shellcript的输出来设置ant属性?(或另一个蚂蚁任务)

像这样的东西:

<property name="foo">
    <value>
        <exec executable="bar" />
    </value>
</property>
Run Code Online (Sandbox Code Playgroud)

谢谢!

Nim*_*Nim 8

似乎exec任务有一个outputproperty-property,如下所示:

<exec executable="bar" outputproperty="foo" />
Run Code Online (Sandbox Code Playgroud)


Pul*_*wal 8

来自ANT执行任务

  1. 设置output属性:要将输出写入的文件的名称.
  2. 正如大理石所建议的那样 - 设置 outputproperty

当我测试时,它们是相互排斥的.因此,一次只设置其中一个.


Osc*_*avo 5

扩展@Nim 的答案:

该标记可以显示为 的直接子级。它不必位于 . 这赋予了它全局范围,就像标签一样。

另外,如果您需要复杂的命令,可以使用arg标签。

例如,如果您想将 Git 分支名称添加到 jar 清单中,您可以执行以下操作:

 <project>

    <property name="user" value="fred"/>

    <!-- git.branch gets set globally -->
    <exec executable="/usr/bin/git" outputproperty="git.branch">
      <arg value="rev-parse"/>
      <arg value="--abbrev-ref"/>
      <arg value="HEAD"/>
    </exec>

    <target name="make-jar">
      <jar jarfile="project.jar">
        <manifest>
          <attribute name="Built-By" value="${user}"/>
          <attribute name="Git-Branch" value="${git.branch}"/>
        </manifest>
        <fileset dir="${classes.dir}" includes="**/*.class"/>
      </jar>
    </target>
  </project>
Run Code Online (Sandbox Code Playgroud)