Spring Boot 构建可执行 jar 失败

Posted

技术标签:

【中文标题】Spring Boot 构建可执行 jar 失败【英文标题】:Springboot build executable jar failed 【发布时间】:2018-03-01 23:46:04 【问题描述】:

我在 IntelliJ 中使用 Maven Projects -> Lifecycle -> package 构建可执行 jar 时收到这样的错误消息

原因:org.postgresql.util.PSQLException: FATAL: 用户“postgres”的密码验证失败

但是当我将本地 postgres 密码放入 hibernate.cfg 时,它可以工作。

为什么构建 jar 必须连接到数据库才能工作?

问题是我的本地 postgres 和服务器 postgres 密码不一样,我可以将本地 postgres 更改为具有相同的密码,但是如果我有多个不同项目的不同密码的服务器,则会出现问题。

【问题讨论】:

【参考方案1】:

如果您使用 application.properties,您必须像这样设置连接:

spring.datasource.url=jdbc:postgresql://localhost:5432/yourdb
spring.datasource.username=postgres
spring.datasource.password=sql
spring.datasource.driver-class-name=org.postgresql.Driver

【讨论】:

谢谢,我正在使用 hibernate.cfg.xml,虽然我尝试了你的方法,并删除了 hibernate.cfg.xml 中的密码和用户名,现在它甚至无法在本地服务器上运行错误消息 org.postgresql.util.PSQLException: 服务器请求基于密码的身份验证,但未提供密码。

以上是关于Spring Boot 构建可执行 jar 失败的主要内容,如果未能解决你的问题,请参考以下文章

使用 `publishToMavenLocal` 构建可以发布到 maven 本地 repo 的可执行 jar - spring boot 项目

Spring Boot Gradle 打包可执行Jar文件!

Spring Boot 完全可执行的 jar,内部没有依赖项

没有依赖关系的 Spring Boot 可执行 Jar 文件

没有可执行jar的Spring Boot 2 Gradle插件

Spring Boot 可执行 jar “无效或损坏的 jar 文件”