org.postgresql.util.PGobject 在 org.postgresql 中不可用

Posted

技术标签:

【中文标题】org.postgresql.util.PGobject 在 org.postgresql 中不可用【英文标题】:org.postgresql.util.PGobject not available in org.postgresql 【发布时间】:2019-11-05 16:17:14 【问题描述】:

我正在使用 Spring boot 2.1.5.RELEASE,并且我的 pom.xml 中有以下依赖项

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <scope>runtime</scope>
</dependency>

但是没有找到org.postgresql.util.PGobject。在另一个非 Spring Boot 项目中,我有以下依赖项

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.2.5</version>
</dependency>

并且org.postgresql.util.PGobject 可供使用。

知道为什么在 Spring Boot 项目中找不到 org.postgresql.util.PGobject 吗?

【问题讨论】:

【参考方案1】:

因为您在runtime 范围内设置了Postgresql JDBC 驱动程序,它具有以下行为:

这个范围表示不需要依赖 编译,但用于执行。它在运行时和测试中 类路径,但不是编译类路径。

它不在编译类路径中,导致在编译过程中找不到它的类。您应该将其更改为 compile 范围,这是默认范围,因此您可以简单地省略 &lt;scope&gt;

 <dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
</dependency>

【讨论】:

以上是关于org.postgresql.util.PGobject 在 org.postgresql 中不可用的主要内容,如果未能解决你的问题,请参考以下文章