公告
财富商城
积分规则
提问
发文
2019-01-07 22:37发布
兄弟一词,经得起流年.
How can I get the value of the current target ant?
Does it exist a special variable something called TARGET?
I think you can't, unless you spend some time coding your own custom tasks (http://ant.apache.org/manual/tutorial-writing-tasks.html)
The built-in properties you can display are: basedir, ant.file, ant.version, ant.project.name, ant.java.version
If you run ant using the -projecthelp arg:
-projecthelp
ant -projecthelp
you will get a listing of the main targets specified in the build.xml (or other build file as declared on the commandline).
My answer, using 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>
Usage:
<showtargetname property="mycurrenttarget"/>
Based on the issue you have to patch ant or used javascript:
<target name="test"> <script language="javascript"> project.setNewProperty("current_target", self.getOwningTarget()); </script> <echo>${current_target}</echo> </target>
In ant 1.8.2 you can use ${ant.project.invoked-targets}
However, looking at the commit logs http://svn.apache.org/viewvc?view=revision&revision=663061 I'm guessing its been available since 1.7.1
最多设置5个标签!
I think you can't, unless you spend some time coding your own custom tasks (http://ant.apache.org/manual/tutorial-writing-tasks.html)
The built-in properties you can display are: basedir, ant.file, ant.version, ant.project.name, ant.java.version
If you run ant using the
-projecthelp
arg:you will get a listing of the main targets specified in the build.xml (or other build file as declared on the commandline).
My answer, using antcontrib
Usage:
Based on the issue you have to patch ant or used javascript:
In ant 1.8.2 you can use ${ant.project.invoked-targets}
However, looking at the commit logs http://svn.apache.org/viewvc?view=revision&revision=663061 I'm guessing its been available since 1.7.1