背景
gradleでは
- javaファイルは
src/java
に - それ以外のファイルは
src/resources
に
配置する構成が用意されていますが、java ファイルと関連が強いファイルを resources 側に置くと関連がわかりづらくなるという課題があります。
そういった、javaファイルのすぐ隣に関連するリソースファイルを配置したいというニーズにお答えします。
(例えば、java と fxml を隣に並べたいとか)
解法
build.gradle への記載はこれだけです。
build.gradle
// java-libraryなどのpluginが適用されているとして
sourceSets {
main {
resources {
srcDir "src/main/java"
}
}
}
補足
- ぱっと見では
src/main/resources
を上書きしてしまっているように思えますが、srcDir
は追記なので、デフォルトのsrc/main/resources
は残ります。- この記述では、main resourcesに
src/main/resources
とsrc/main/java
の2つを指定していることになります。
- この記述では、main resourcesに
- *.javaファイルがresources扱いされそうに見えますが、 *.javaは resourcesからexcludeされている ので、
src/main/java
内の*.javaがリソースとして扱われることはありません。
gradle 4.4 で動作確認しています。