2016-09-28 14 views
4

私は最近Gradleの設定をいくつか変更して処理を高速化しましたが、そのうちの1人がorg.gradle.configureondemand=trueプロパティをgradle.propertiesというファイルに変更していました。Gradleの「オンデマンドでの設定」は正確に何ですか?

"オンデマンド構成"という言葉から多くのことを推測できますが、この機能の正確な影響を知りたいと思いますか?この引数をtrueと設定すると、設定をトリガするために何かする必要がありますか?

trueと設定すると何か問題が起こりますか?

どのような構成段階が正確ですか?

答えて

5

この設定は、複数のモジュールプロジェクトに対してのみ有効です。基本的には、Gradleに、要求されたタスクに関連するモジュールのみを設定するように指示します。これはデフォルトの動作です。ご質問に、より正確に答えること

  • いいえ、手動で設定をトリガする必要はありません。
  • はい、ドキュメントに記載されているように何かが間違っている可能性があります。 機能は、 デカップルプロジェクトを持つマルチプロジェクトビルドではうまく機能するはずです。 「設定オンデマンド」モードでは

次のように、プロジェクトが設定されている:

  • ルートプロジェクトが常に設定されています。このように、一般的な一般的な構成(allprojectsまたはsubprojectsスクリプトブロック)がサポートされています。
  • ビルドが実行されるディレクトリ内のプロジェクトも構成されますが、タスクなしでGradleが実行された場合のみです。この方法では、プロジェクトがオンデマンドで構成されている場合、デフォルトのタスクが正しく動作します。
  • 標準のプロジェクト依存関係がサポートされており、関連するプロジェクトを構成します。プロジェクトAがプロジェクトBにコンパイル依存関係にある場合、ビルAは両方のプロジェクトの構成を引き起こします。
  • タスクパス経由で宣言されたタスクの依存関係がサポートされ、関連するプロジェクトが構成されます。例:someTask.dependsOn(:someOtherProject:someOtherTask
  • タスクパス経由でコマンドライン(またはTooling API)から要求されたタスクは、関連するプロジェクトを構成します。たとえば、projectA:projectB:someTaskをビルドすると、projectBが構成されます。

Hereは完全なドキュメントです。

+0

リンクに感謝しています。関係するものを設定するだけでGradleがすべての設定を行うのはなぜですか?私はなぜGradleがこれをデフォルトの振る舞いにしていないのか?両方がうまくいっていれば、どちらかが速いのはなぜでしょうか? –

+0

おそらく最初の場所でこれを行う方が簡単でした。 「長期的には、このモードはデフォルトモードになり、おそらくはGradleビルド実行の唯一のモードになります。 –

+0

ありがとう、ありがとう、私はちょうどインキュベートする機能について読む、私は傾ける原因私の評判が15未満です。あなたの答えは非常に有用だった:) –

関連する問題