2016-07-17 5 views
3

で実行されているプロジェクトを知っている私は複数のプロジェクトと1つのトランクを持っている...方法のGradle

私はcmdを経由して実行する必要があるいくつかの回:

gradlew Proj1:assembleRelease 

そして、他の回:

gradlew Proj2:assembleRelease 

どのようにして、Proj1またはProj2を構築しているのかをgradleファイルで知ることができますか?

答えて

1

Projectの任意のインスタンスのgradleプロパティでこの情報にアクセスできます。 the docsから:

getGradle()
このプロジェクトが属するGradleの呼び出しを返します。

Gradleのインスタンスには、希望する情報が含まれているstartParameterプロパティがあります。たとえば、ルートスコープに:

print project.gradle.startParameter 

私の特定の呼び出しのために、私は

print project.gradle.startParameter.taskRequests[0].args[0] 

を介して第一タスク要求の名前を印刷することができしかし、上記のは、おそらく非常に脆弱であり、かつ確実に失敗します多くの重要なケースで

Gradleインスタンスでは、このビルドのタスク実行グラフやルートプロジェクトなど、上記のものがあなたの望むものとまったく同じものではない場合があります。上記の情報はすべて、先にリンクしたProjectクラスのドキュメントのリンクから入手できます。この文書をよく読んでみることを強くお勧めします。

一方、なぜこれをやりたいのですか?通常は、個々のプロジェクト自体に構成を追加し、if task1 is running then x else y

というよりも、特定の実装を実行するためにタスクランナーに注意を払うだけです
関連する問題