gradle没有任务排序,那么如何实现这一点呢
因此,如果我们有一个drop db任务、一个create db任务、一个start server任务和一个runqatest任务,我们希望gradle没有任务排序,那么如何实现这一点呢,gradle,Gradle,因此,如果我们有一个drop db任务、一个create db任务、一个start server任务和一个runqatest任务,我们希望 有独立的任务,所以我可以自己(或其他人)调用gradle dropdb 让runqatest依赖于dropdb、createdb、populatedb和startserver 上面的第二条显然需要命令,否则就会被打破,而格拉德尔并不像蚂蚁那样遵守任何命令。如何做到这一点?(我在这篇帖子上读了很多关于这方面的文章 虽然一个用户是错误的,但当您 1.e依赖于c
if (gradle.startParameter.taskNames.contains("qatest") {
qatest.dependsOn startServer
startServer.dependsOn populatedb
populatedb.dependsOn createdb
createdb.dependson dropdb
}
这种方法的局限性在于,只有当qatest
是命令行上提供的初始任务的一部分时,它才起作用。有时这已经足够好了,您可以添加检查以确保用户不会出错
如果您更经常需要它,您可以添加一个小助手方法,使其更容易声明这样的工作流。类似于工作流(qatest、dropdb、createdb、populatedb、startserver)
另一种方法是创建任务的“克隆”,并(仅)在克隆之间添加任务依赖项。同样,您可以将其隐藏在一些抽象后面。例如,createWorkflowTask(“startServer”){…}
可以创建和配置startServer
和startServerWorkflow
任务
总之,Gradle的可编程性使得克服“工作流”的问题成为可能在Gradle中还不是一流的概念。Gradle 1.6添加了一个替代解决方案,但它仍在酝酿:
mustRunAfter
。请参阅。这是一个良好的开端。对于多项目构建,它有点脆弱,因为我发现我需要检查“构建”以及“:projectX:build”,但它现在仍然完成了工作!