Jlink пружинный ботинок - PullRequest
       28

Jlink пружинный ботинок

1 голос
/ 23 января 2020

У меня есть простое загрузочное приложение hello world spring 2, которое работает с полной JDK 13. Теперь я пытаюсь запустить его с пользовательской JRE с использованием весенней загрузки.

В прошлом, когда мне нужно внешние банки, я запустил jdeps -s json-20190722.jar, чтобы увидеть, какие модули мне нужны.

$jdeps -s json-20190722.jar 
json-20190722.jar -> java.base

Но когда я делаю это с Spring, я получаю

$jdeps -s spring-boot-2.2.4.RELEASE.jar
spring-boot-2.2.4.RELEASE.jar -> java.base
spring-boot-2.2.4.RELEASE.jar -> java.desktop
spring-boot-2.2.4.RELEASE.jar -> java.logging
spring-boot-2.2.4.RELEASE.jar -> java.management
spring-boot-2.2.4.RELEASE.jar -> java.naming
spring-boot-2.2.4.RELEASE.jar -> java.sql
spring-boot-2.2.4.RELEASE.jar -> java.xml
spring-boot-2.2.4.RELEASE.jar -> not found

Это также не получается, когда я делаю

$ jdeps --generate-module-info . spring-boot-2.2.4.RELEASE.jar | more
Missing dependence: ./spring.boot/module-info.java not generated
Error: missing dependencies
spring.boot
   org.springframework.boot.Banner                    -> org.springframework.core.env.Environment           not found
   org.springframework.boot.BeanDefinitionLoader      -> groovy.lang.Closure                                not found

Чего мне здесь не хватает?

Спасибо

1 Ответ

0 голосов
/ 14 апреля 2020

Вам также нужны все ваши зависимости и укажите их в опции пути к классу.

$jdeps -R -s --multi-release 13 -cp 'path-to-dependencies/*' your-app.jar

Вы можете найти все зависимости в вашем толстом фляге Структура исполняемого файла Jar или получить их с помощью Gradle и пользовательская задача:

task copyDependencies(type: Copy) {
    from configurations.default
    into 'build/libs/dependencies'
}

Возможно, мы найдем лучшее решение, когда Spring Boot 2.3 будет выпущен с Layered Jars.

...