Как добавить файлы конфигурации или любые другие ресурсы в банку с помощью Gradle?
Моя структура проекта:
src / main / java / com / perseus / .. --- Пакеты Java (исходные файлы)
src / main / java / config / *. xml --- файлы конфигурации Spring
Ожидаемая структура банки:
com / perseus / .. --- Пакеты Java (файлы классов)
config / *. xml --- файлы конфигурации Spring
gradle
build.gradle
Притеш Мхатре
источник
источник
Переместите файлы конфигурации из
src/main/java
вsrc/main/resources
.источник
Спасибо, ребята, я переносил существующий проект на Gradle, и мне не очень понравилась идея менять структуру проекта.
Я разобрался, подумал, что эта информация может быть полезна новичкам.
Вот пример задачи из моего build.gradle:
version = '1.0.0' jar { baseName = 'analytics' from('src/main/java') { include 'config/**/*.xml' } manifest { attributes 'Implementation-Title': 'Analytics Library', 'Implementation-Version': version } }
источник
sourceSets.main.resources { srcDirs = ["src/main/java"]; exclude "**/*.java" }
.По умолчанию все файлы, которые вы добавляете,
src/main/resources
будут включены в jar.Если вам нужно изменить это поведение по какой-либо причине, вы можете сделать это, настроив
sourceSets
.В этой части документации есть все подробности
источник
.../resources/
включается вместо каталога ресурсов с содержимым?Я столкнулся с той же проблемой. У меня был файл PNG в пакете Java, и он не был экспортирован в окончательный JAR вместе с источниками, что привело к сбою приложения при запуске (файл не найден).
Ни один из приведенных выше ответов не решил мою проблему, но я нашел решение на форумах Gradle. Я добавил в свой
build.gradle
файл следующее:Он сообщает Gradle искать ресурсы в
src
папке и просит включить только файлы PNG.РЕДАКТИРОВАТЬ: помните, что если вы используете Eclipse, это нарушит ваши конфигурации запуска, и вы получите
main class not found
ошибку при попытке запустить свою программу. Чтобы исправить это, я нашел единственное решение - переместить изображение (я),res/
например, в другой каталог и установить его какsrcDirs
вместоsrc/
.источник
+=
оператор, чтобы добавить свои каталоги в существующие каталоги: напримерsourceSets.main.resources.srcDirs += [ "src/main/java" ]
Имейте в виду, что путь в src / main / resources должен совпадать с путем к пакету ваших файлов .class, желающих получить доступ к ресурсу. Смотрите мой ответ здесь .
источник