gpt4 book ai didi

java - Spring Boot application.properties 未读取

转载 作者:行者123 更新时间:2023-12-02 01:32:29 27 4
gpt4 key购买 nike

我在 Eclipse 中使用 Maven 开发了一个 springboot 应用程序。用@SpringBootApplication注释的类读取src/main/resources中的application.properties。在 Eclipse 中一切工作正常。使用 Maven,我生成了一个 fat jar,这是我正在使用的插件:

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>

在目标文件夹中生成 2 个 jar,一个名为 fatjar-exec.jar,另一个名为 fatjar.jar。当我运行命令 java -jar fatjar-exec.jar 时,会引发异常,因为应用程序无法读取 application.properties 文件。我还解压了 jar,并且 applciation.properties 正确地位于 BOOT-INF/classes 文件夹下。有什么提示吗?

最佳答案

请比较生成的 fatjar 的内容。常规的(没有 exec)只有一份 springboot 类的副本,而用分类器生成的有两个。

  • 下一个/org/springframework/boot/loader (预计)
  • 第二个 /BOOT-INF/classes/org/springframework/boot/loader

可能是类路径搜索的顺序导致从意外位置拾取文件,并且找不到 /BOOT-INF/classes 中的属性

恕我直言,最简单的版本效果最好:

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

检查Custom repackage classifier如果您想保留原始文件(您缺少 <id>repackage</id> ),请详细了解如何配置 maven。

关于java - Spring Boot application.properties 未读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55825752/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com