私は最近、プロジェクトでgradleの使用を開始し、標準を実行しています
gradle clean init build
実行中のタスクの多くで、実行中の現在のタスクの横にあるコンソールに、この UP-TO-DATE メッセージが表示されることに気付きました。例えば:-
:foo:bar:test UP-TO-DATE
このメッセージの意味が気になります。同じことに関するドキュメントが見つかりませんでした。
私は最近、プロジェクトでgradleの使用を開始し、標準を実行しています
gradle clean init build
実行中のタスクの多くで、実行中の現在のタスクの横にあるコンソールに、この UP-TO-DATE メッセージが表示されることに気付きました。例えば:-
:foo:bar:test UP-TO-DATE
このメッセージの意味が気になります。同じことに関するドキュメントが見つかりませんでした。
Gradle が行うことはすべてタスクです。ほとんどのタスクには、入力と出力が宣言されています。Gradle は、入力と出力をチェックして、タスクが最新かどうかを判断します。
たとえば、compile
タスク入力はソース コードです。前回のコンパイルからソース コードが変更されていない場合は、出力をチェックして、コンパイラによって生成されたクラス ファイルが失われていないことを確認します。入力と出力が変更されていない場合、タスクは「最新」であると見なされ、そのタスクは実行されません。これにより、特に大規模なビルドでは、多くの時間を節約できます。
ところで:このビルドの最適化を本当にバイパスしたい場合は、--rerun-tasks
コマンドラインオプションを使用してすべてのタスクの実行を強制できます。gradleコマンドラインオプションのドキュメントを参照してください
Gradle はインクリメンタル ビルド システムです。これは、タスクを実際に実行する前に、タスクを実際に実行する必要があることを確認して、高速化することを意味します。
したがって、たとえば、以前のビルドでソース ファイルを既にコンパイルしていて、ソース ファイル (およびコンパイル タスクのその他の入力) を変更していない場合、Gradle はすべてのソース ファイルを再コンパイルしません。ビルド フォルダーに既に存在するものとまったく同じ出力が得られます。したがって、コンパイルは安全にスキップされ、ビルドが高速化されます。
ドキュメントの詳細情報
私は同様の問題に直面し、すべてのオプションを試しましたが、次のオプションがうまくいきました:
gradle -Dorg.gradle.daemon=false <your tasks>