2013-06-07 5 views
6

私は2つのGradleスクリプト持っている:私は私のbuild.gradleで異なるグラデーションスクリプト間で変数をどのように渡しますか?

build.gradleと other.gradle

: から適用されます: 'other.gradle' 私には

task callotherscript << { 
    thevar = "Thevariableiwanttogetsomeplaceelse" 
    dosomecommand  

をother.gradle私が持っている:

task dosomecommand(type: Exec) { 
    executable "someexe" 
    args "aa", "<myarg>" + <thevar>, "<intomydir>" 
} 

私の質問は:どのように私はそうbuild.gradleから "thevar" を入手できますか私はother.gradleで使うことができます。

私が実行: ':dosomecommand'

は、タスクのプロパティ 'thevar' が見つかりませんでした:Gradleのは、私が見ていたエラーメッセージがある

をcallotherscript。

私は料理本を見てきました。私が思ったすべてのグラデル・ドックは関連性があり、どうやってそれをするのか分かりません。

おかげ

答えて

11

あなたはprojectに、たとえば、余分な財産を宣言することができます。

ext.foo = "bar" 

スクリプトは、さらに下に適用今fooとしてプロパティにアクセスすることができます。

タスクは他のタスクを呼び出さず、に依存していることを理解することが重要です。

+1

Peterさんに感謝します。私は数日間、 "余分な不動産"の設定をいじっていた。 "ExtraPropertiesExtention"ページで何を試しても、私はいつも "rootプロジェクト 'myproject'でプロパティ 'myprop'を見つけることができませんでした。"これはちょうど私のgradleの評価ですが、スクリプト間で変数を渡すことはほとんど困難ではありません。私はちょうどgradleの明確なままになり、何がうまくいくと思います。 – user1819471

+1

上記のコードスニペットから判断すると、プロパティを間違ったフェーズ(設定フェーズではなく実行フェーズ)に設定している可能性があります。 Gradleを成功させるには、これらおよび他のコアとなるGradleの概念(タスクの依存関係など)を理解する必要があります。これには多少の労力と時間がかかります。 –

関連する問題