我的Gradle任务中的cd命令不起作用。用它去另一个文件夹。

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

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

最佳答案

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'
            }
        }
    }
    

    09-04 12:53
    查看更多