如何获得当前目标蚂蚁的值?

时间:2009-09-15 15:03:57

标签: ant target

如何获取当前目标蚂蚁的值?

它是否存在一个名为TARGET的特殊变量?

5 个答案:

答案 0 :(得分:13)

基于the issue,您必须修补ant或使用javascript:

<target name="test">
  <script language="javascript">
    project.setNewProperty("current_target", self.getOwningTarget());
  </script>
  <echo>${current_target}</echo>
</target>

答案 1 :(得分:10)

在ant 1.8.2中,您可以使用$ {ant.project.invoked-targets}

然而,查看提交日志 http://svn.apache.org/viewvc?view=revision&revision=663061 我猜它自1.7.1开始就可以使用

答案 2 :(得分:2)

我的答案,使用antcontrib

  <macrodef name="showtargetname">
    <attribute name="property"/>
    <sequential>

      <!-- make temporary variable -->
      <propertycopy name="__tempvar__" from="@{property}"/>

      <!-- Using Javascript functions to convert the string -->
      <script language="javascript"> <![CDATA[
        currValue = [project-name].getThreadTask(java.lang.Thread.currentThread()).getTask().getOwningTarget().getName();
        [project-name].setProperty("__tempvar__", currValue);
      ]]>
      </script>

      <!-- copy result -->
      <var name="@{property}" value="${__tempvar__}"/>

      <!-- remove temp var -->
      <var name="__tempvar__" unset="true"/>

    </sequential>
  </macrodef>

用法:

<showtargetname property="mycurrenttarget"/>

答案 3 :(得分:1)

我认为你不能,除非你花一些时间编写自己的自定义任务(http://ant.apache.org/manual/tutorial-writing-tasks.html

您可以显示的内置属性有:basedir,ant.file,ant.version,ant.project.name,ant.java.version

答案 4 :(得分:1)

如果您使用-projecthelp arg:

运行ant
ant -projecthelp

您将获得build.xml(或命令行中声明的其他构建文件)中指定的主要目标列表。