我有一个Gradle项目,其中包含两个子项目:

  • backend
  • frontend

  • 我想在父项目stage中创建一个任务,该任务执行:backend:build,但是仅在运行:frontend:clean:backend:clean之后才执行。

    我试过了,但是mustRunAfter被忽略了,清理工作在构建结束时进行。怎么了
    task stage(dependsOn: [':frontend:clean', ':backend:clean', ':backend:build'])
    task(":backend:build").mustRunAfter(":frontend:clean", ":backend:clean")
    

    我还尝试将第二行替换为:
    project("backend").build.mustRunAfter(":frontend:clean, ":backend:clean")
    

    但仍然没有运气。

    最佳答案

    我仍然不确定为什么我的尝试都不奏效,但这是一种可行的方法:

    task stage(dependsOn: [':frontend:clean', ':backend:clean', ':backend:build'])
    tasks.getByPath(":backend:build").mustRunAfter(":frontend:clean", ":backend:clean")
    

    10-08 17:26