Изменить, как организован каталог сборки Gradle - PullRequest
0 голосов
/ 18 января 2019

Итак, я недавно (частично) завершил Java-проект с Gradle. Важно отметить, что проект использует абсолютный путь для доступа к файлам в моей папке ресурсов, так как эти файлы будут изменены после создания JAR. Когда я использую функциональность Eclipse «экспорт как работающий JAR», я получаю что-то, что работает отлично - помещая файл .jar в мой основной каталог, он может найти все. Однако использование функции сборки Gradle не позволяет, потому что Gradle добавляет дополнительные слои между .jar и ресурсами. Чтобы продемонстрировать, вот мой «нормальный» каталог:

./program root directory
|_program.jar
|_resources
  |_[actual resources]

А вот каталог, который Gradle делает:

./build folder
|_libs
| |_program.jar
|_resources
  |_main
    |_[actual resources]

Что я хочу от Gradle:

./build folder
|_program.jar
|_resources
  |_[actual resources]

Да, я мог бы вручную перемещать ресурсы и program.jar в каталоге, чтобы добиться этого, но это неправильно - это именно то, что Gradle должен сделать для меня, верно? Я знаю, что должен быть какой-то способ сделать это. Я просто не знаю как. Вот почему я прошу о помощи - как мне это сделать?

1 Ответ

0 голосов
/ 18 января 2019

Чтобы изменить вывод ресурсов:

sourceSets.main.output.resourcesDir = "$buildDir/resources"

Чтобы изменить расположение файла JAR:

jar {
    // use destinationDir for Gradle < 5.1
    destinationDirectory = buildDir
}

Если все ваши ресурсы предназначены для внешнего использования, вы можете исключить их из файла JAR:

jar {
    include '**/*.class'
    destinationDirectory = buildDir
}

Это будет включать в себя только .class файлы из задания jar. Вы можете настроить это, используя опции include и exclude.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...