を取得するどのようにこのようなANTタスク:ANT - 現在のタスク名
<target name="mytask">
<echo>processing ${blabla}</echo>
</target>
印刷processing mytask
?
blabla
はどのように置き換える必要がありますか?これは実際には可能ですか?
を取得するどのようにこのようなANTタスク:ANT - 現在のタスク名
<target name="mytask">
<echo>processing ${blabla}</echo>
</target>
印刷processing mytask
?
blabla
はどのように置き換える必要がありますか?これは実際には可能ですか?
あなたのバージョンが最近のバージョンの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
を設定します。
それは、ありがとうございます。 –
それは美しいです。 –
タスク名は、常に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
これはあなたの元の質問に答えますが、実際の要件はコメントで更新されたものではありません。 – sudocode
確かに。ありがとうございますが、あなたの答えは役に立たない。 –
私はそれが何を知っている唯一の方法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>
ご利用のケースは? Antがこれを行うことができるので、タスクの開始時と終了時に印刷するだけです。 – skaffman
いいえ、これは単なる例でした。私はターゲット名でファイルを作成したい。 –
ファイル作成者はAntか外部(出力を読み込み中)になっていますか? – sudocode