🌋

Gradleaのリソースコピーエラーを解消する

2023/02/13に公開

経緯

SpringBoot + OpenAPIでプロジェクトを作った際に以下のようなエラーが発生した.

> Task :processResources FAILED
Execution optimizations have been disabled for task ':processResources' to ensure correctness due to the following reasons:
  - Gradle detected a problem with the following location: '/path/to/the/project/build/generated/sources/oas3/src/main/resources'. Reason: Task ':processResources' uses this output of task ':openApiGenerate' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.6/userguide/validation_problems.html#implicit_dependency for more details about this problem.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processResources'.
> Entry application.properties is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.6/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

スクラッチで書いているapplication.propertiesがsrc/main/resourceにある状態で、
OpenAPIGeneratorがsrc/main/resourceにソースコードを出力などしているとリソースが重複するが、どうするのか?というエラー.

対策

processResources {
    duplicatesStrategy = DuplicatesStrategy.INCLUDE
}

src/main/resources配下について、
スクラッチのソースコードを自動生成ソースコードでバッティングする資材がないことがわかっている前提で、両方コピーで問題無しとする.

最後に

雑すぎる記事ですが、メモレベルで残します。。。

Discussion