web-dev-qa-db-ja.com

「gradle clean」を実行する理由

なぜgradle clean buildの代わりにgradle buildを実行するのですか?

私の理解では、Gradleはソースの変更を検出し、必要に応じて最終成果物を更新できます。では、なぜcleanにする必要があるのでしょうか?

43
marius bardan

クリーンタスクJavaプラグイン によって定義され、buildDirフォルダーを削除するだけで、関連性のない以前のビルドの残りを含むすべてをクリーンアップします。そうしないと、以前のビルドで生成されたビルドアーティファクトが原因で破損する可能性のある、クリーンでないビルドになる可能性があります。

例として、ビルドに失敗したいくつかのテストが含まれており、これらは廃止されたため削除する必要があると判断したと仮定します。テスト結果を(cleanTestタスクを使用して)またはビルド全体を(クリーンタスクを実行して)クリーニングしないと、失敗したテスト結果でスタックし、ビルドが失敗します。同様の副作用は、ソースから削除されたリソース/クラスでも発生する可能性がありますが、ビルドフォルダーに残っており、クリーニングされていません。

61
Amnon Shochot

ビルドディレクトリを削除します。 (ビルドにはgradle操作の出力が含まれます) gradle clean demo

2
Sudip Bhandari

Buckのような他のビルドツールは、一部のテストが削除されたことを検出し、クリーンなターゲットを実行する必要なくテストを実行しません。これはグラドルの落とし穴だと思います。

1
Adrian Liu