Автор оригинала: Dhrubajyoti Bhattacharjee.
1. Обзор
В этом руководстве мы рассмотрим, как использовать приложение Spring Boot в качестве зависимости от другого проекта.
2. Упаковка Пружинного Ботинка
Плагины Spring Boot Maven и Gradle упаковывают наше приложение в виде исполняемых файлов – такой файл не может использоваться в другом проекте, так как файлы классов помещаются в BOOT-INF/classes . Это не ошибка, а особенность.
Чтобы поделиться классами с другим проектом, лучше всего создать отдельный jar , содержащий общие классы , а затем сделать его зависимостью всех модулей, которые полагаются на них.
Но если это невозможно, мы можем настроить плагин для создания отдельной банки, которую можно использовать в качестве зависимости.
2.1. Конфигурация Maven
Давайте настроим плагин с классификатором:
...... ... org.springframework.boot spring-boot-maven-plugin exec
Через, конфигурация для Spring Boot 1.x будет немного отличаться:
...org.springframework.boot spring-boot-maven-plugin repackage exec
Это создаст две банки, одну с суффиксом exec в качестве исполняемой банки, и другую в качестве более типичной банки, которую мы можем включить в другие проекты .
3. Упаковка с плагином сборки Maven
Мы также можем использовать maven-assembly-plugin для создания зависимой jar:
org.apache.maven.plugins maven-assembly-plugin jar-with-dependencies make-assembly package single
Если мы используем этот плагин вместе с классификатором exec в spring-boot-maven-плагине, он создаст три банки. Первые два будут такими же, как мы видели ранее.
Третий будет иметь любой суффикс, который мы указали в теге , и будет содержать все транзитивные зависимости проекта. Если мы включим его в другой проект, нам не нужно будет отдельно включать зависимости Spring.
4. Заключение
В этой статье мы показали несколько подходов к упаковке приложения Spring Boot для использования в качестве зависимости в других проектах Maven.
Как всегда, код, поддерживающий статью, доступен на GitHub .