Классы приложений Spring Boot- package в виде jar в BOOT-INF / lib

#spring-boot #spring-boot-gradle-plugin

#spring-boot #spring-boot-gradle-plugin

Вопрос:

Я использую Spring Boot 1.4.1 с Gradle 3.1. Модуль, к которому применен плагин Spring Boot, создает свой собственный jar с jar задачей, а также создает «толстый» jar bootRepackage . Однако классы из этого модуля находятся в BOOT-INF/ classes , но я бы хотел, чтобы они были в отдельном jar в BOOT-INF / lib. Как это сделать?

РЕДАКТИРОВАТЬ: я знаю, что могу переместить код в отдельный модуль, но по разным причинам я не могу сделать такое разделение (если нет другого способа). Я ищу одномодульное решение, если оно существует.

Комментарии:

1. Почему вы не хотите, чтобы классы были внутри BOOT-INF/classes ?

2. Из-за этого: github.com/spring-projects/spring-boot/wiki /. … Предлагаемый обходной путь заключается в том, чтобы упаковать классы приложений в виде jar, распаковать их из fat jar, а затем снова запустить сканирование Джерси.

Ответ №1:

Вам нужно будет настроить сборку из нескольких проектов и переместить все классы, связанные с Джерси, в отдельный проект. Затем вы можете зависеть от этого нового проекта в своем проекте Spring Boot, используя project зависимость. Например:

 dependencies {
    compile project(':jersey-endpoints')
}
  

Комментарии:

1. Да, я знаю об этом способе, но надеялся, что есть более простой способ, тем более что документация предлагает это сделать. В чем причина введения такого кардинального изменения для многих (по крайней мере, я знаю немало других проектов, имеющих проблему)? Действительно ли новый макет имеет преимущества, гарантирующие изменение?

2. Если вы уже знаете об одном подходе, который отвечает на ваш вопрос, то было бы неплохо сказать об этом в вашем вопросе. Какая пустая трата времени.

3. Вы правы, извините, я обновил вопрос. Тем не менее, было бы неплохо, чтобы в документации упоминалось, каковы подходы, это сэкономило бы еще больше времени.