我想把多个gradle任务作为一个来运行.而不是
./gradlew clean build publish
Run Code Online (Sandbox Code Playgroud)
我想要一个自定义任务
./gradlew cleanBuildPublish
Run Code Online (Sandbox Code Playgroud)
执行clean build和publish按顺序.
怎么可能?
这不起作用
task cleanBuildPublish {
dependsOn 'clean'
dependsOn 'build'
dependsOn 'publish'
}
Run Code Online (Sandbox Code Playgroud)
Sta*_*lav 86
如果您需要按预定义的顺序执行某些任务,那么您不仅需要设置dependsOn,还需要mustRunAfter为此任务设置属性,如下面的代码所示:
task cleanBuildPublish {
dependsOn 'clean'
dependsOn 'build'
dependsOn 'publish'
tasks.findByName('build').mustRunAfter 'clean'
tasks.findByName('publish').mustRunAfter 'build'
}
Run Code Online (Sandbox Code Playgroud)
dependsOn没有定义任务执行的顺序,它只是使一个任务依赖于另一个任务,而mustRunAfter确实如此.
tas*_*iac 78
您还可以使用调用的任务库类 GradleBuild
在这里你可以用它来做到这一点 GradleBuild
task cleanBuildPublish(type: GradleBuild) {
tasks = ['clean', 'build', 'publish']
}
Run Code Online (Sandbox Code Playgroud)
尝试以下方法使 cleanBuildPublish 依赖于其他任务
构建.gradle
task clean{
println "lets clean"
}
task build {
println "lets build"
}
task publish {
println "lets publish"
}
task cleanBuildPublish{
println 'lets do all'
}
cleanBuildPublish.dependsOn clean
cleanBuildPublish.dependsOn build
cleanBuildPublish.dependsOn publish
Run Code Online (Sandbox Code Playgroud)
输出
$ gradle cleanBuildPublish
lets clean
lets build
lets publish
lets do all
:build UP-TO-DATE
:clean UP-TO-DATE
:publish UP-TO-DATE
:cleanBuildPublish UP-TO-DATE
BUILD SUCCESSFUL
Total time: 2.738 secs
Run Code Online (Sandbox Code Playgroud)
检查https://docs.gradle.org/current/userguide/more_about_tasks.html#addDependencyUsingTask了解更多详细信息
我的方法是
task cleanBuildPublish (type: GradleBuild, dependsOn: ['clean', 'build', 'publish']) {
}
Run Code Online (Sandbox Code Playgroud)
这对我有用。
| 归档时间: |
|
| 查看次数: |
47949 次 |
| 最近记录: |