问题
当两个任务都被执行时,我能否以某种方式确保一个任务将在另一个任务之前/之后执行?我不想在它们之间添加始终存在的依赖关系。
背景
我有两项任务,一项启动服务器,一项针对它运行测试。启动该服务器的任务在一个新进程中运行它,所以我可以运行gradle startServer runServerTests
. 由于启动服务器需要一些时间,因此必须可以使用一个 gradle 进程启动服务器,然后使用另一个 gradle 进程多次运行测试。
现在我正在尝试创建一个任务来完成我们的 CI 环境所做的所有事情,包括启动服务器和运行服务器测试。我显然想确保在运行测试之前启动服务器,但到目前为止我不走运。
尝试
我的第一次尝试如下,但这不起作用,因为不能保证定义的依赖项的顺序:
task doItAll(dependsOn: [startServer, runServerTests]) { ... }
我的第二次尝试,在操作中调用任务不起作用并且不受支持:
task doItAll() << {
tasks.startServer.execute()
tasks.runServerTests.execute()
}
解决方案在路线图上(GRADLE-294,Initializer/Finalizer),但现在对我没有帮助。