gradle中的cd命令无法正常工作

时间:2017-09-13 13:26:17

标签: android gradle android-gradle build.gradle

我的Gradle任务中的cd命令无效。用它来转到另一个文件夹。

task assembleTask(overwrite: true, type:Exec) {
    commandLine "gradle", "assembleDev"

    doLast {
        commandLine "cd tests"
        commandLine "ls"
    }
}

1 个答案:

答案 0 :(得分:3)

Exec任务只运行一次。您正在设置commandLine属性3次。

  • 在配置阶段,在任务运行之前
  • 任务运行后
  • 两次(这将无效)

如果您想让一个任务运行另一个任务,您可以执行

task assembleTask {
   dependsOn assembleDev
   doLast {
       file('tests').listFiles().each { File f ->
          println f.name
       }
   }
}

或许你想要一个GradleBuild任务,不确定

如果要在单个任务中运行多个执行者,可能需要使用project.exec()而不是Exec任务。例如:

task assembleTask {
    doLast {
        exec {
            commandLine 'foo'            
        }
        exec {
            commandLine 'bar'
        }
        exec {
            commandLine 'baz'
        }
    }
}