Есть ли способ убедить Gradle принимать файлы ресурсов (например, файлы XML), а также в папке src/main/java
?Gradle: принять файлы ресурсов в папке src/main/java
Это было бы здорово, так как мне нужно положить мои файлы XML JavaFX там ...
Есть ли способ убедить Gradle принимать файлы ресурсов (например, файлы XML), а также в папке src/main/java
?Gradle: принять файлы ресурсов в папке src/main/java
Это было бы здорово, так как мне нужно положить мои файлы XML JavaFX там ...
Вы можете определить, где Gradle ищет файлы ресурсов, делая что-то вроде этого:
sourceSets {
main {
resources {
srcDirs = ["src/main/java"]
includes = ["**/*.fxml"]
}
}
}
Ну, это действительно трюк. Но это хорошее/приятное решение проблемы? – Hannes
Это точно соответствует лучшим методам Gradle, поэтому я бы проголосовал «да» –
Если вы собираетесь использовать этот подход для предоставления ресурсов в 'src/main/java' (который я лично ненавижу), я бы предложил вам используйте 'excludes = [" **/*. java "]' вместо 'includes = [" **/*. fxml "]' –
Как видно из названия предлагает src/main/java
для файлов JAVA. Хотя можно настроить настройки по умолчанию, чтобы разрешить ресурсы в этой папке, вы не должны (на мой взгляд).
Предлагаю вам придерживаться разумных соглашений и помещать ваш xml и т. Д. В src/main/resources
. За этим соглашением следуют как Maven, так и Gradle.
OP утверждает, что они используют javaFX, который (по-видимому) заставляет тогда помещать файлы fxml в тот же путь, что и их файлы Java. Кажется, их выбор не нарушал конвенцию. Gradle поддерживает настройку местоположения ресурсов именно для этого типа ситуации, не так ли? – RaGe
Несомненно ... если он ДОЛЖЕН быть таким, то Gradle позволит вам сделать это, как показано в другом ответе. Никогда не использовал javaFX сам, но удивлялся, что он заставляет это соглашение. –
В чем проблема? что не работает? это о развертываемых ресурсах, которые не доступны где-то? почему бы не использовать соглашение о включении их в src/main/resources? Вы просмотрели https://docs.gradle.org/current/userguide/java_plugin.html, чтобы увидеть, что вы можете переопределить, где находится субдир ресурсов? –
Я не могу помочь вам с Gradle, но почему вам нужно поставить свой FXML? файлы там? – mipa
@mipa JavaFX Scene Builder ожидает, что файлы FXML будут в той же папке, что и класс Controller. – Hannes