gradle任务只运行最后一个命令

时间:2015-07-31 13:11:14

标签: android gradle gradlew

我有这个任务,它将一些文件复制到设备

task copyTestVideos(type: Exec) {
  commandLine 'adb', 'push', 'src/androidTest/raw/test1.mp4', '/mnt/sdcard/DCIM/Camera/'
  commandLine 'adb', 'push', 'src/androidTest/raw/test2.mp4', '/mnt/sdcard/DCIM/Camera/'
  commandLine 'adb', 'push', 'src/androidTest/raw/test3.mp4', '/mnt/sdcard/DCIM/Camera/'
  commandLine 'adb', 'push', 'src/androidTest/raw/test4.mp4', '/mnt/sdcard/DCIM/Camera/'
  commandLine 'adb', 'push', 'src/androidTest/raw/test5.mp4', '/mnt/sdcard/DCIM/Camera/'
  commandLine 'adb', 'push', 'src/androidTest/raw/test6.mp4', '/mnt/sdcard/DCIM/Camera/'
}

结果表明只有最后一行似乎被执行了。有人看到类似的东西吗?

1 个答案:

答案 0 :(得分:2)

您正在做的是配置您的Exec任务。在配置阶段,以commandLine开头的行实际上并未执行。相反,他们反复设置任务的属性commandLine

在执行阶段,属性commandLine用于启动进程。此时它只包含一个值:上一行的字符串。

请参阅:https://docs.gradle.org/current/userguide/build_lifecycle.html#sec:build_phases

在这种情况下,切换到像您一样复制文件夹是最简单的解决方案。