Мое приложение требует, чтобы каталог \config был доступен в пути к классам, когда оно ищет файлы конфигурации в этом каталоге. В настоящее время у меня настроены такие зависимости, хотя, вероятно, это неправильный способ сделать каталог доступным для моего приложения:

dependencies {
    ... //runtime, compile dependencies pulled from repositories
    runtime files('config')
}

Я использую плагин application для создания отдельного zip-архива для своего проекта. Если в моем каталоге \config есть \config\subdir, file1, file2, то плагин создает каталог build\install со следующей структурой:

| build
| --|install
| ----|bin
| ------ projectName
| ------ projectName.bat
| ----|lib
| ------ dependency1.jar
| ------ dependency2.jar
| ------|subdir
| ------ file1
| ------ file2

Это не работает для моего приложения, потому что оно явно ожидает каталог \config

Однако это структура каталогов, которая мне нужна:

| build
| --|install
| ----|bin
| ------ projectName
| ------ projectName.bat
| ----|lib
| ------ dependency1.jar
| ------ dependency2.jar
| ----|config
| ------|subdir
| ------ file1
| ------ file2

Как я могу заставить gradle добавить еще один каталог в сборку и указать его как часть пути к классам для сгенерированных сценариев запуска?

21
Omar Darwish 22 Фев 2016 в 06:35

2 ответа

Лучший ответ

В документации подключаемого модуля приложения говорится:

Статические файлы для добавления в дистрибутив можно просто добавить в src / dist

Я бы попробовал поместить ваш каталог конфигурации в src/dist/lib и продолжить добавлять его в ваш путь к классам с помощью runtime files('src/dist/lib/config')

Примечание: устранение этого дефекта означает, что конфигурация должна быть помещена в /lib в src/dist

6
RaGe 22 Фев 2016 в 17:08

Вы можете попробовать это:

project('project-name') {
   apply plugin: 'application'
   mainClassName = "your.main.Class"

   startScripts {
       classpath += files('src/dist/lib/conf')
   }

Дополнительную информацию можно найти на здесь.

4
Andy Malakov 8 Дек 2016 в 01:44