如何使用Gradle同步两个文件夹?

时间:2015-03-23 15:31:20

标签: groovy gradle android-gradle

我需要将文件夹inside与名为outside的文件夹同步。 inside文件夹必须是outside文件夹的精确副本 - 所有子目录,文件等。

Copy任务很有效,除了它只会覆盖文件 - 如果这些文件不再在inside中,它不会删除仍在outside文件夹中的文件文件夹中。

现在我正在使用Delete任务所依赖的Copy任务。 Delete任务每隔一次构建失败,出现以下错误。 inside文件夹确实被删除,但Copy任务中的新文件不会被复制。

Error:(117) A problem occurred evaluating project ':android'.
> Cannot convert the provided notation to a File or URI: true.
  The following types/formats are supported:
    - A String or CharSequence path, e.g 'src/main/java' or '/usr/include'
    - A String or CharSequence URI, e.g 'file:/usr/include'
    - A File instance.
    - A URI or URL instance.

我猜这是因为某种类型的Gradle缓存问题 - 如何解决这个问题,或者更好地设计流程?谢谢!

1 个答案:

答案 0 :(得分:0)

看起来使用tasks参数声明任务类型/依赖关系并在任务方法体中执行此操作之间存在很大差异。

这样的事情很有效

task deleteFiles(type: Delete) {
    delete destinationHtmlFolder
}

task copyFiles(dependsOn: tasks.withType(Copy)){
    println "copying all files"
}
相关问题