ANT这样的任务怎么样:
<target name="mytask">
<echo>processing ${blabla}</echo>
</target>
打印processing mytask
?
我应该用blabla
取代什么?或者这实际上甚至可能?
答案 0 :(得分:4)
如果你的版本已经足够包含javascript支持,那么这可能适用于vanilla Ant。
<scriptdef name="currenttarget" language="javascript">
<attribute name="property"/>
<![CDATA[
importClass( java.lang.Thread );
project.setProperty(
attributes.get( "property" ),
project.getThreadTask(
Thread.currentThread( ) ).getTask( ).getOwningTarget( ).getName( ) );
]]>
</scriptdef>
<target name="foobar">
<currenttarget property="my_target" />
<echo message="${my_target}" />
</target>
scriptdef
设置一个任务currenttarget
,可用于获取属性中的当前目标,然后您可以根据需要使用该目标。
答案 1 :(得分:0)
任务名称始终由Ant输出到控制台:
以下是一个例子:
<project default="test">
<target name="test" depends="mytask-silent, mytask-echo"/>
<target name="mytask-echo">
<echo>processing</echo>
</target>
<target name="mytask-silent"/>
</project>
这是输出:
C:\tmp\ant>ant
Buildfile: c:\tmp\ant\build.xml
mytask-silent:
mytask-echo:
[echo] processing
test:
BUILD SUCCESSFUL
Total time: 0 seconds
答案 2 :(得分:0)
我知道这样做的唯一方法是编写ANT任务或使用groovy script,如下所示:
<target name="mytask" depends="init">
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>
<groovy>
println "processing ${target}"
</groovy>
</target>