Добавьте ресурсы, файлы конфигурации в свою банку, используя gradle
Как добавить файлы конфигурации или любые другие ресурсы в свою банку с помощью gradle?
Моя структура проекта:
src/main/java/com/perseus/.. --- Java-пакеты (исходные файлы)
src/main/java/config/*. xml --- Spring файлы конфигурации
Ожидаемая структура банки:
com/perseus/.. --- Java-пакеты (файлы классов)
config/*. xml --- Spring файлы конфигурации
Ответы
Ответ 1
Спасибо, ребята, я переносил существующий проект на 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
}
Ответ 2
Переместите файлы конфигурации с src/main/java
на src/main/resources
.
Ответ 3
По умолчанию любые файлы, добавляемые в src/main/resources
, будут включены в банку.
Если вам нужно изменить это поведение по любой причине, вы можете сделать это, настроив sourceSets
.
В этой части документации есть все подробности.
Ответ 4
Я столкнулся с этим сообщением о том, как добавить дополнительный каталог для ресурсов. Я нашел решение, которое может быть полезно кому-то. Вот моя окончательная конфигурация, чтобы получить это:
sourceSets {
main {
resources {
srcDirs "src/main/resources", "src/main/configs"
}
}
}
Ответ 5
Я столкнулся с той же проблемой. У меня был файл PNG в пакете Java, и он не был экспортирован в финальный JAR вместе с источниками, из-за которых приложение вышло из строя при запуске (файл не найден).
Ни один из ответов выше не решил мою проблему, но я нашел решение на форумах Gradle. Я добавил следующее в файл build.gradle
:
sourceSets.main.resources.srcDirs = [ "src/" ]
sourceSets.main.resources.includes = [ "**/*.png" ]
Он сообщает Gradle искать ресурсы в папке src
и просит включить только файлы PNG.
РЕДАКТИРОВАТЬ: Помните, что если вы используете Eclipse, это нарушит ваши конфигурации запуска, и вы получите ошибку main class not found
при попытке запустить вашу программу. Чтобы исправить это, единственным решением, которое я нашел, является перемещение изображения (ов) в другой каталог, например, res/
и установка его как srcDirs
вместо src/
.