web-dev-qa-db-ja.com

Gradleコピータスク:既存のファイルを上書きする方法は?

Copy apiは、設定できるフラグ/プロパティについて言及していません。では、デフォルトのアクションは何で、どのように変更できますか?


this によると、

Gradle 0.9.1以降、コピータスクは常にファイルを上書きします。他の戦略はまだサポートされていません。

19
user1329572

問題のテキストにあるように、Copyタスクはファイルを上書きし、他の戦略は現在サポートされていません。それがあなたのケースで適切でない場合は、いつでもAntタスクにフォールバックできます。

9

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'

また、ネストされた「from」に存在する可能性のあるバグについては、 Gradle Zip DuplicatesStrategyが正しく機能しない を確認してください。

3
icyerasor

タスクコピーを使用するときに同じ問題が発生します。gradleは常に最新のチェックを実行するため、コピーがスキップされます。

Gradleのユーザーマニュアルで詳細を読んだ後、タスクの代わりにproject.copy()メソッドを使用できることがわかりましたCopy。この方法では、最新のチェックがスキップされるため、ファイルは常に宛先にコピーされます。

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