Как я могу получить значение текущего целевого муравья? - PullRequest
17 голосов
/ 15 сентября 2009

Как я могу получить значение текущего целевого муравья?

Существует ли специальная переменная, называемая TARGET?

Ответы [ 5 ]

13 голосов
/ 16 сентября 2009

Исходя из проблемы , вы должны исправить муравей или использовать JavaScript:

<target name="test">
  <script language="javascript">
    project.setNewProperty("current_target", self.getOwningTarget());
  </script>
  <echo>${current_target}</echo>
</target>
10 голосов
/ 01 марта 2011

В ant 1.8.2 вы можете использовать $ {ant.project.invoked-target}

Однако, просматривая логи коммитов http://svn.apache.org/viewvc?view=revision&revision=663061 Я предполагаю, что это было доступно с 1.7.1

2 голосов
/ 13 октября 2015

Мой ответ, используя 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"/>
1 голос
/ 15 сентября 2009

Если вы запускаете ant, используя -projecthelp arg:

ant -projecthelp

вы получите список основных целей, указанных в build.xml (или другом файле сборки, объявленном в командной строке).

1 голос
/ 15 сентября 2009

Я думаю, что вы не можете, если вы не потратите некоторое время на написание своих собственных задач (http://ant.apache.org/manual/tutorial-writing-tasks.html)

Можно отобразить следующие встроенные свойства: basedir, ant.file, ant.version, ant.project.name, ant.java.version

...