Рубрики
Без рубрики

Использование приложения Spring Boot в качестве зависимости

Быстрый и практический пример использования приложения Spring Boot в качестве зависимости.

Автор оригинала: 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 .