Gradle Задача копирования: как перезаписать существующие файлы? - программирование

Gradle Задача копирования: как перезаписать существующие файлы?

Copy api не упоминает флаг/свойство, которое можно установить. Итак, какое действие по умолчанию и как его можно изменить?


Согласно this,

Как и в случае с Gradle 0.9.1, задача копирования всегда перезаписывает файлы. Другой стратегии пока не поддерживаются.

4b9b3361

Ответ 1

Как говорится в тексте проблемы, задача Copy перезаписывает файлы, а другие стратегии в настоящее время не поддерживаются. Если это не подходит в вашем случае, вы всегда можете вернуться к задаче Ant.

Ответ 2

Посмотрите DuplicatesStrategy http://www.gradle.org/docs/1.7-rc-1/release-notes#duplicate-file-handling-for-copy-and-archive-operations и http://www.gradle.org/docs/current/javadoc/org/gradle/api/file/DuplicatesStrategy.html. Оба должны работать для копирования без перезаписывания (в то время как перезаписывание - по умолчанию).

duplicatesStrategy 'exclude'

Также проверьте Gradle Zip DuplicatesStrategy не работает правильно для возможной ошибки, которая существует с вложенными "from" s.

Ответ 3

У меня такая же проблема, когда я использую Task Copy, gradle всегда выполняет последнюю проверку, которая вызывает пропущение копирования.

После ознакомления с руководством по gradle, я узнаю, что мы можем использовать метод project.copy() вместо задачи Копировать. Этот метод пропускает последнюю проверку, поэтому файлы всегда будут скопированы в пункт назначения.

task myCopy << {
    copy {
        from (yourSourceDir)
        into (yourDestDir)
    }
}