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で動作確認しています。