21

私は最近、プロジェクトでgradleの使用を開始し、標準を実行しています

gradle clean init build

実行中のタスクの多くで、実行中の現在のタスクの横にあるコンソールに、この UP-TO-DATE メッセージが表示されることに気付きました。例えば:-

:foo:bar:test UP-TO-DATE

このメッセージの意味が気になります。同じことに関するドキュメントが見つかりませんでした。

4

4 に答える 4

22

Gradle が行うことはすべてタスクです。ほとんどのタスクには、入力と出力が宣言されています。Gradle は、入力と出力をチェックして、タスクが最新かどうかを判断します。

たとえば、compileタスク入力はソース コードです。前回のコンパイルからソース コードが変更されていない場合は、出力をチェックして、コンパイラによって生成されたクラス ファイルが失われていないことを確認します。入力と出力が変更されていない場合、タスクは「最新」であると見なされ、そのタスクは実行されません。これにより、特に大規模なビルドでは、多くの時間を節約できます。

于 2013-02-28T23:11:50.547 に答える
11

ところで:このビルドの最適化を本当にバイパスしたい場合は、--rerun-tasksコマンドラインオプションを使用してすべてのタスクの実行を強制できます。gradleコマンドラインオプションのドキュメントを参照してください

于 2013-03-01T11:51:35.243 に答える
5

Gradle はインクリメンタル ビルド システムです。これは、タスクを実際に実行する前に、タスクを実際に実行する必要があることを確認して、高速化することを意味します。

したがって、たとえば、以前のビルドでソース ファイルを既にコンパイルしていて、ソース ファイル (およびコンパイル タスクのその他の入力) を変更していない場合、Gradle はすべてのソース ファイルを再コンパイルしません。ビルド フォルダーに既に存在するものとまったく同じ出力が得られます。したがって、コンパイルは安全にスキップされ、ビルドが高速化されます。

ドキュメントの詳細情報

于 2013-02-28T13:58:56.270 に答える
-1

私は同様の問題に直面し、すべてのオプションを試しましたが、次のオプションがうまくいきました:

 gradle  -Dorg.gradle.daemon=false <your tasks>
于 2016-09-25T01:32:23.080 に答える