ghj*_*gkj 6 java spring jlink maven spring-boot
我有一个简单的 hello world spring 2 boot 应用程序,它使用完整的 JDK 13 运行。现在我尝试使用 spring boot 让它与自定义 JRE 一起运行。
过去,当我需要外部 jar 时,我会跑去jdeps -s json-20190722.jar看我需要什么模块。
$jdeps -s json-20190722.jar
json-20190722.jar -> java.base
Run Code Online (Sandbox Code Playgroud)
但是当我用 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
Run Code Online (Sandbox Code Playgroud)
当我这样做时它也失败了
$ 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
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?
谢谢
您还需要所有依赖项并将其指向类路径选项。
$jdeps -R -s --multi-release 13 -cp 'path-to-dependencies/*' your-app.jar
Run Code Online (Sandbox Code Playgroud)
如果提取 fat jar,您可以找到所有依赖项(请参阅可执行 Jar 文件结构):
jar -xvf your-jar-file.jar
Run Code Online (Sandbox Code Playgroud)
或者使用 Gradle 和自定义任务检索它们:
task copyDependencies(type: Copy) {
from configurations.default
into 'build/libs/dependencies'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4857 次 |
| 最近记录: |