2015-12-30 32 views
9

私は複数のモジュールを持つアンドロイドプロジェクトを持っています。私はカスタムのgradleタスクをモジュールの1つから実行しようとしていますが、他のモジュールと同様に他のすべてのgradleタスクも実行します。私の仕事は他の仕事に依存していません。タスク:アンドロイドスタジオで独立した独立したgradleタスクを実行

task helloTask{ 
    println "Hello task" 
} 

このタスクは、スタジオのターミナルウィンドウとコマンドラインから実行してみました。

答えて

9

グラードは、コンフィグレーションフェーズで<<と宣言されていないすべてのタスクを実行します。あなたが実行フェーズまでのタスクの実行を遅延する場合、あなただけのhelloExecutionタスクを実行する際に続いて、我々は両方の実行を参照してくださいあなたのbuild.gradle

task helloConfiguration { task -> 
    println "Hello configuration phase task! $task.name" 
} 

/* Notice the `<<` this denotes to gradle to not execute 
* the closure during the configuration phase. Instead 
* delay closure's execution till the execution phase. 
*/ 
task helloExecution << { task -> 
    println "Hello execution phase task! $task.name" 
} 

helloExecution.dependsOn helloConfiguration 

<<

を追加することができ、順序が保証さ。次に、ビルドを構成するタスクのみを実行したい場合は、単一のタスクを実行したい場合にのみ、個別に行うことができます。

$ gradle helloExecution 
Hello configuration phase task! helloConfiguration 
Hello execution phase task! helloExecution 
:helloConfiguration UP-TO-DATE 
:helloExecution UP-TO-DATE 

BUILD SUCCESSFUL 

Total time: 0.64 secs 

$ gradle helloConfiguration 
Hello configuration phase task! helloConfiguration 
:helloConfiguration UP-TO-DATE 

BUILD SUCCESSFUL 

Total time: 0.784 secs 

設定段階で実行されるタスクは、いつも私があなたのシーイングを期待する行動である、何のタスクが供給されていない場合でも実行されます。上記の例を考えてみましょう。構成タスクは実行されたが実行されていないことに注意してください。あなたは構成フェーズで実行5つのタスクを持っている場合

$ gradle 
Hello configuration phase task! helloConfiguration 
:help 

Welcome to Gradle 2.10. 

To run a build, run gradle <task> ... 

To see a list of available tasks, run gradle tasks 

To see a list of command-line options, run gradle --help 

To see more detail about a task, run gradle help --task <task> 

BUILD SUCCESSFUL 

Total time: 0.651 secs 

だから、あなたはそれらのすべてを実行見ることが、関係なく、タスクのコマンドライン引数は、実行フェーズの目標のために起動しようとしました。

+0

私はデフォルトのタスクに依存しないタスクを実行します。特定のタスクを実行したいだけですが、それは可能ではありませんか? –

+0

削除したいタスクが分かっている場合は、コマンドライン 'gradle myTask -x someTaskThatShouldNotRun'で明示的に指定することができます。 – JBirdVegas

+3

残念なことに、残念ながらこれらの答えの中には問題があります。 – JoshuaTree

0

実行コンフィギュレーションを使用して同じ設定を行うことができます。 https://developer.android.com/studio/run/rundebugconfig.html

[実行] - > [設定の編集] - >新しい設定を追加するには+をクリックします。表示されるリストから[選択する]を選択します。最後に、アプリを選択して、実行するタスクを入力します。 Android Studioでは、同じものに対してオートコンプリートを提供することさえあります。

このタスクを実行すると、[実行]メニューのオプションとして直接実行できます。

関連する問題