2016-02-19 53 views
2

有沒有辦法說服Gradle接受資源文件(如XML文件)以及src/main/java文件夾?Gradle:接受src/main/java文件夾中的資源文件

,因爲我需要把我的JavaFX的XML文件有這將是偉大的......

+0

你的問題是什麼?什麼不行?這是關於部署資源不可用的地方嗎?爲什麼不使用將它們放在src/main/resources中的約定?您是否查看了https://docs.gradle.org/current/userguide/java_plugin.html以查看您可以重新定義資源subdir的位置? –

+1

我無法幫助您使用Gradle,但您爲什麼需要放置FXML?文件在那裏? – mipa

+0

@mipa JavaFX Scene Builder期望FXML文件與Controller類位於同一文件夾中。 – Hannes

回答

4

您可以定義做這樣的事情的gradle地方尋找資源文件:

sourceSets { 
    main { 
     resources { 
      srcDirs = ["src/main/java"] 
      includes = ["**/*.fxml"] 
     } 
    } 
} 
+0

這實際上是這樣做的。但是,這是一個很好/很好的解決方案? – Hannes

+1

這完全符合Gradle的最佳實踐,所以我會投贊成票 –

+0

如果你打算使用這種方法來允許'src/main/java'中的資源(我個人討厭),我建議你使用'excludes = [「**/*。java」]'而不是'includes = [「**/*。fxml」]' –

-1

正如其名建議src/main/java用於JAVA文件。雖然可以調整gradle的默認值以允許此文件夾中的資源,但不應該(以我自己的觀點來看)。

我建議你堅持合理的約定,把你的XML等src/main/resources。 Maven和Gradle都遵循這個約定。

+2

OP聲明他們正在使用javaFX(顯然)會強制將fxml文件放在與其Java文件相同的路徑中。它違反慣例似乎不是他們的選擇。 Gradle支持爲這種類型的情況準確地定製資源的位置,不是嗎? – RaGe

+0

當然......如果它必須是這樣,那麼Gradle會讓你按照另一個答案中所顯示的那樣做。我自己從來沒有用過javaFX,但感到驚訝的是它強制這個約定。 –