Spring JarLauncher 不从依赖加载 application.yml
Spring JarLauncher doesn't load application.yml from dependency
我的问题与此处描述的问题类似(我没有明确覆盖 classpath):
Spring application.yml not detected when running with -classpath
我有一个 Spring启动应用程序生成可执行文件 app.jar 以重新打包目标构建。
我在 backend.jar 的根上下文中有 application.yml 这是 [=42= 的依赖项]。
我可以通过 MainClass 从 IDEA 成功 运行 应用程序:
SpringApplication.run(MyApp.class, args);
我可以 运行 从终端成功地应用程序:
java -jar app.jar
但是,当我 运行 在本地 CloudFoundry 时,应用程序无法从 application.yml 配置:
unzip app.jar
java org.springframework.boot.loader.JarLauncher
Spring 将启动并提供静态内容,但第一次尝试访问需要配置数据的任何内容时都会失败。
我通读了文档,但无法弄清楚 class 路径有什么问题。从 MANIFEST.INF 我假设 java -jar app.jar 执行与上面第三个示例中相同的 class。
谢谢你的想法。
这原来是一个 类路径 问题(呃!)。
我们在依赖项 Y 中有一个 'forgotten' 空 application.yml,在我们的依赖项 X 中有一个实际有效的 application.yml。与 类 类似,只有第一次出现类路径上的资源由类加载器加载。
启用 spring 调试日志记录并检查 ClasspathLoggingApplicationListener 输出后,可以看到 fatjar 中依赖项的类路径顺序 不同 对于有问题的用例。
对于 java -jar 嵌套的 JAR 顺序似乎是 散列。对于 JarLauncher,它是 alphabetical。
使此一致的现有请求:https://github.com/spring-projects/spring-boot/issues/9128
我的问题与此处描述的问题类似(我没有明确覆盖 classpath): Spring application.yml not detected when running with -classpath
我有一个 Spring启动应用程序生成可执行文件 app.jar 以重新打包目标构建。 我在 backend.jar 的根上下文中有 application.yml 这是 [=42= 的依赖项]。 我可以通过 MainClass 从 IDEA 成功 运行 应用程序:
SpringApplication.run(MyApp.class, args);
我可以 运行 从终端成功地应用程序:
java -jar app.jar
但是,当我 运行 在本地 CloudFoundry 时,应用程序无法从 application.yml 配置:
unzip app.jar
java org.springframework.boot.loader.JarLauncher
Spring 将启动并提供静态内容,但第一次尝试访问需要配置数据的任何内容时都会失败。
我通读了文档,但无法弄清楚 class 路径有什么问题。从 MANIFEST.INF 我假设 java -jar app.jar 执行与上面第三个示例中相同的 class。
谢谢你的想法。
这原来是一个 类路径 问题(呃!)。
我们在依赖项 Y 中有一个 'forgotten' 空 application.yml,在我们的依赖项 X 中有一个实际有效的 application.yml。与 类 类似,只有第一次出现类路径上的资源由类加载器加载。
启用 spring 调试日志记录并检查 ClasspathLoggingApplicationListener 输出后,可以看到 fatjar 中依赖项的类路径顺序 不同 对于有问题的用例。
对于 java -jar 嵌套的 JAR 顺序似乎是 散列。对于 JarLauncher,它是 alphabetical。
使此一致的现有请求:https://github.com/spring-projects/spring-boot/issues/9128