Подтвердить что ты не робот

Добавьте ресурсы, файлы конфигурации в свою банку, используя gradle

Как добавить файлы конфигурации или любые другие ресурсы в свою банку с помощью gradle?

Моя структура проекта:

src/main/java/com/perseus/.. --- Java-пакеты (исходные файлы)

src/main/java/config/*. xml --- Spring файлы конфигурации

Ожидаемая структура банки:

com/perseus/.. --- Java-пакеты (файлы классов)

config/*. xml --- Spring файлы конфигурации

4b9b3361

Ответ 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/.