Слот — Spring Boot 可插件化拓展改造器, позволяющий Spring-Boot приложениям поддерживать загрузку внешних jar-пакетов и осуществлять плагинное расширение. GitHub: https://github.com/core-lib/slot-maven-plugin
Слот: в компьютерной индустрии это означает периферийные элементы расширения слота.
Spring-Boot проект после упаковки представляет собой FatJar, который включает в себя все зависимые сторонние jar-файлы. Во время выполнения classpath включает в себя BOOT-INF/classes каталог и все jar-файлы в BOOT-INF/lib.
Проблема заключается в том, что для загрузки внешних jar-файлов можно только упаковать их во время сборки, но невозможно реализовать расширяемую плагинную архитектуру.
Слот — это Maven плагин, который позволяет преобразовать Spring-Boot проекты в поддерживающие загрузку внешних jar.
Процесс запуска Spring-Boot JAR можно разделить на несколько этапов:
Основной принцип работы Слот:
<project>
<!-- Настройка jitpack.io плагина репозитория -->
<pluginRepositories>
<pluginRepository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</pluginRepository>
</pluginRepositories>
<!-- Добавление Slot Maven плагина -->
<build>
<plugins>
<plugin>
<groupId>com.github.core-lib</groupId>
<artifactId>slot-maven-plugin</artifactId>
<version>1.0.2</version>
<executions>
<execution>
<goals>
<goal>transform</goal>
</goals>
<phase>package</phase>
<configuration>
<!-- optional
<sourceDir/>
<sourceJar/>
<targetDir/>
<targetJar/>
-->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Параметр | Имя параметра командной строки | Описание | Тип | Значение по умолчанию | Пример значения |
---|---|---|---|---|---|
sourceDir | -Dslot.sourceDir | Каталог исходного jar | File | ${project.build.directory} | Каталог файлов |
sourceJar | -Dslot.sourceJar | Имя исходного jar | String | ${project.build.finalName}.jar | Имя файла |
targetDir | -Dslot.targetDir | Каталог целевого jar | File | ${project.build.directory} | Каталог файлов |
targetJar | -Dslot.targetJar | Имя целевого jar | String | ${project.build.finalName}-slot.jar | Имя файла |
По умолчанию плагин выполняется на этапе package, но также может быть выполнен отдельно с использованием команды mvn slot:transform.
Значение по умолчанию для имени jar после обновления с помощью slot — ${project.build.finalName}-slot.jar, которое можно изменить с помощью конфигурации плагина или параметров команды.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- Необходимо удалить параметры executable и embeddedLaunchScript, в настоящее время не поддерживается обновление для этого режима Jar!
<configuration>
<executable>true</executable>
<embeddedLaunchScript>...</embeddedLaunchScript>
</configuration>
-->
</plugin>
Slot поддерживает два параметра для указания загружаемых внешних jar:
java -jar spring-boot-app-slot.jar --slot.root=/absolute/root/ --slot.path=foo.jar --slot.path=bar.jar
java -jar spring-boot-app-slot.jar --slot.path=/relative/path/to/plugin.jar
java -jar spring-boot-app-slot.jar --slot.path=/relative/path/to/**.jar
ANT-выражение для подстановки:
Подстановочный знак | Значение | Пример |
---|---|---|
** | Любой символ и каталог | /plugins/**.jar — все файлы .jar в каталоге /plugins и его подкаталогах |
* | Любой символ | /plugins/*.jar — все файлы .jar в каталоге /plugins |
? | Один символ | ???.jar — файлы с именами из трёх произвольных символов и расширением .jar в текущем каталоге |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )