2011-12-12 9 views
7

なぜ私はj​​avaプラグインによって提供される 'buildNeeded'というタスクがあるのか​​分かりません。 タスク 'ビルド'は問題を解決していませんか? グラデーションのドキュメントには、タスクbuildNeededのユースケース?

buildNeededがあります:プロジェクトとそれが依存するすべてのプロジェクトの完全ビルドを実行します。

ビルド:プロジェクトのフルビルドを実行します。

「ビルド」タスクは、すべての必要なものをコンパイルしてビルドしてはいけませんか? なぜ 'build'と 'buildNeeded'を区別するのですか?

+0

:D http://gradle.org/docs/current/userguide/multi_project_builds.html – Dori

答えて

7

buildNeededプロジェクトが依存するすべてのプロジェクトに対して、フルbuildを実行します。特に、依存プロジェクトにはtestが実行されます。これは、安全にプレイしたい場合に意味があります。比較すると、buildは依存関係のあるプロジェクト(例えばjar)の最小限のタスクセットしか実行せず、依存関係を満たすだけです。 buildは、buildNeededより頻繁に使用されます。

1

ビルドでは、すべての子プロジェクトで完全ビルドが呼び出されません。

プロジェクトに依存プロジェクトがない場合は、違いはありません。

親プロジェクト内でAPIを変更すると、すべての子プロジェクトを新しいプロジェクトで再コンパイルしたいという考えがあります。

+0

私は何かを見逃したと思います。サブプロジェクトと子プロジェクトの違いはありますか? 'gradle clean build'はどうですか? これは、子/サブプロジェクトの完全ビルドを実行しますか? – Cengiz

+1

@Cengiz:gradle clean buildは最初にクリーン(つまり、あなたの/ buildフォルダを削除することを意味します)してから、プロジェクトのビルドだけを行います。それは 'gradle clean'とそれに続く 'gradle build'と同じ効果があります。 –