1. ホーム
  2. gradle

[解決済み] 複数のタスクを実行するGradleカスタムタスク

2022-12-02 16:17:37

質問

複数のgradleタスクを1つのタスクとして実行したい。そのため、代わりに

./gradlew clean build publish

カスタムタスクが欲しい

./gradlew cleanBuildPublish

を実行する clean buildpublish を順番に並べます。

そんなことが可能なのか?

これはうまくいきません

task cleanBuildPublish {
    dependsOn 'clean'
    dependsOn 'build'
    dependsOn 'publish'
}

どのように解決するのですか?

あるタスクをあらかじめ定義された順序で実行する必要がある場合、単に dependsOn を設定するだけでなく mustRunAfter プロパティを設定します。

task cleanBuildPublish {
    dependsOn 'clean'
    dependsOn 'build'
    dependsOn 'publish'
    tasks.findByName('build').mustRunAfter 'clean'
    tasks.findByName('publish').mustRunAfter 'build'
}

dependsOn はタスクの実行順序を定義せず、あるタスクを他のタスクに依存させるだけですが、一方 mustRunAfter はそうします。