我正在尝试使用Gradle任务删除文件
task remove {
exec {
working dir file/file2
commandLine 'myFirstCommandLineWhichWorks'
commandLine "rm", "'myFile.txt'"
}
}
我收到错误消息“启动过程'命令'rm'时出现问题”注意:我不想使用
task something(type: Delete)
,也不要使用外部脚本。它必须来自命令行。
有可能吗?
最佳答案
I'm trying to remove a file using a gradle task
Gradle为此用例提供了任务类型(
Delete
)和方法( delete
)。Note: I don't want to use
task something(type: Delete)
为什么?如果您不想使用Gradle功能,则完全不要使用Gradle。
it must be from commandLine.
正如其他人提到的那样,命令
rm
在Windows系统上不可用。这是Gradle提取此功能的原因之一。您的代码还有另一个问题:您定义了一个完全不相关的Gradle任务,因为它不会执行任何功能。 Gradle区分配置阶段和执行阶段。任务定义
<code>
闭包内的task <name> { <code> }
将直接执行(在配置阶段)。当实际任务执行时(从命令行或作为任务依赖项),仅执行(内部)任务操作,doFirst
和doLast
闭包。要解决此问题,请直接使用
Delete
类型的任务(仍然应该执行此操作),使用Exec
类型的任务或将exec
方法包装在doFirst
/ doLast
闭包中:task remove(type: Delete) {
delete 'myFile.txt'
}
task remove(type: Exec) {
commandLine 'del', 'myFile.txt', '/q'
}
task remove {
doFirst {
exec {
commandLine 'del", 'myFile.txt', '/q'
}
}
}
关于android - 如何使用任务gradle删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64533373/