2011-10-27 2 views
5

script要素内でmacrodefで定義されたタスクを作成したいとします。私は、各属性に対応する「セット」関数が存在することを見出したいと考えていました。そのような運はありません。属性を指定するための他のAPIはありますか?macrodefとスクリプト対javascript

var statustask = project.createTask("service-status"); 
statustask.setPath(project.getProperty("path")); 
statustask.setStatusproperty("status"); 
statustask.setTimeout=("1"); // this isn't suppose to take a long time. 
statustask.perform(); 
+1

あなたはjavascriptの権利を使用していますか?あなたは属性を設定したいのですか?私はちょっとあなたの質問から混乱しています。 – FailedDev

答えて

5

あなたはおそらく、あなたがマクロのcreateTaskメソッドから取得しますMacroInstance(タスクのサブクラス)のメソッドを使用して、欲しいものを達成することができます。この:実行時に

<macrodef name="my.macro"> 
    <attribute name="attr1" default="NOT SET"/> 
    <sequential> 
     <echo message="[email protected]{attr1}" /> 
    </sequential> 
</macrodef> 

<script language="javascript"><![CDATA[ 
    var macro = project.createTask("my.macro"); 
    macro.setDynamicAttribute("attr1", "value_1"); 
    macro.execute(); 
]]></script> 

がこれを生成します:

[echo] attr1=value_1 
+1

+1素敵なトリック:) – FailedDev

+1

私はドキュメントでそれを見つけることができませんでしたが、多くの試行錯誤の後、私は(マクロ1.7の) 'macrodef'の'属性 ' *ラクダではなく、ラクダの場合''そうでなければ、(JavaScriptでテストされた)スクリプトは 'sun.org.mozilla.javascript.internal.WrappedException:ラップされた不明な属性[attributeOne] ...' –

関連する問題