2016-08-04 5 views
0

プロジェクトに3つのタスクを追加するGradleプラグイン - プロジェクトの配布可能なジップを作成するbuildZipタスク、そのジップを共有リポジトリに公開するタスク、およびクリーニングするタスクcleanZip zipのローカルバージョンをアップしてください。現地開発の場合はcleanZip buildZipが頻繁に使用されますが、自動ビルドシステムはbuildZip publishZip cleanZipとなります。条件付きでGradleでタスクを注文する

このプラグインが使用されているプロジェクトの1つは、Gradleのparallelフラグを使用してビルドを実行し、プロジェクトのさまざまな部分を並列に構築できるようにすることです。残念ながら、これはzipタスクの問題になります。buildZipは実際にビルドしたプロジェクトに依存しますが、cleanZipには依存関係がないため、すぐに実行でき、自動ビルドシステムはクリーンアップできません。

これらのタスク間の依存関係を宣言することは、別々に実行できる必要があるため、あまり良い考えではありません。また、ときにはきれいにする必要があり、場合によっては最初にビルドする必要があるため、mustRunAfter(少なくともbuildZipcleanZipの間)を指定することはできません。

--parallelによって授与され、特定のものが常に他のものの前に実行されるようにハードコードされていない方法で、これらのタスクを実行する順序をGradleに伝えるにはどうすればよいですか?

答えて

0

できること:gradleが--parallelで実行されているかどうかを検出し、これに基づいてタスク間の依存関係を適切に設定します。これは次の方法で行うことができます。

println project.gradle.startParameter.parallelProjectExecutionEnabled