Gradle-добавить каталог в путь к классам

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

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

Я использую application плагин для создания автономного zip для моего проекта. Если мой и configsubdir, file1, file2, затем плагин создает buildinstall каталог со следующей структурой:

| 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 добавить другой каталог в сборку и указать его как часть пути к классам для сгенерированных сценариев запуска?

2 ответов


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

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

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

Примечание: работает вокруг этот дефект означает, что config должен войти в /lib под src/dist


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

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

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

больше информации можно найти здесь.