如何在Maven中将PostgreSQL驱动程序添加为依赖项?


77

我试图在将Hibernate与PostgreSQL数据库结合使用以实现持久性的同时使用Maven开发Java应用程序。我不明白如何将PostgreSQL驱动程序连接到我的应用程序。我知道您在Maven的pom.xml文件中添加了依赖项,该文件从远程存储库中查找jar,但是其他jar呢?


4
PostgreSQL的司机罐子在Maven的中央资料库:search.maven.org/...
madth3

1
仅供参考,在需要将JDBC驱动程序部署在Web容器而不是WAR文件中的Web应用程序中工作时,如果对此问题有所误解,请参阅我的问题:在编程和编译时包括一个库,但从构建中排除,在基于NetBeans Maven的项目中
罗勒·布尔克

Answers:


107

PostgreSQL驱动程序jar包含在Maven的中央存储库中:

对于9.1以下的PostgreSQL,请使用:

<dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>VERSION</version>
</dependency>

或9.2+

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

(感谢@Caspar进行更正)


9
请注意,对于9.2及更高版本,jdbc驱动程序的groupid已更改,因此您需要搜索org.postgresql的groupid而不是postgresql
Caspar

6
最新的PostgreSQL JDBC驱动程序支持PostgreSQL Server 7.2+。因此,不需要第一个(9.2之前的)块。您可以从PostgreSQL站点找到最新的JDBC驱动程序,并且您的JDK 8(JDBC 4.2)驱动程序依赖项是: <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.4-1206-jdbc42</version> </dependency>
Jan Nielsen

3
从2017-05开始,已重新启动jdbc.postgresql.org中JDBC驱动程序的编号,当前为42.1.1。
罗勒·布尔克

28

更新最新版本:

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

资源

希望能帮助到你!


8
我认为这个答案是没有必要的。如果您认为编辑的VERSION指示性不足以获取最新版本,请考虑对其进行编辑。
Sotirios Delimanolis 2015年

是的,但是您仍然必须寻找最新版本。如果您在这里拥有一切,难道不是很容易吗?
facundofarias

17

根据您的PostgreSQL版本,您需要将postgresql驱动程序添加到pom.xml文件中。

对于PostgreSQL 9.1,它将是:

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <name>Your project name.</name>
    <dependencies>
        <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.1-901-1.jdbc4</version>
        </dependency>
    </dependencies>
</project>

您可以从maven的中央存储库中获取依赖项(以及任何其他依赖项)的代码

如果您使用的是PostgreSQL 9.2+:

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <name>Your project name.</name>
    <dependencies>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.1</version>
        </dependency>
    </dependencies>
</project>

您可以从以下位置查看最新版本和依赖项摘要:


3

从日期为02/04/2016的PostgreSQL网站(https://jdbc.postgresql.org/download.html):

“这是驱动程序的当前版本。除非有特殊要求(运行旧应用程序或JVM),否则应使用该驱动程序。它支持Postgresql 7.2或更高版本,并且需要1.6或更高版本的JVM。它包含对以下版本的支持。 SSL和javax.sql软件包。如果使用1.6,则应使用JDBC4版本;如果使用1.7,则应使用JDBC41版本;如果使用1.8,则应使用JDBC42版本。如果Java版本早于1.6,则您将需要使用JDBC3版本的驱动程序,该驱动程序必然不是最新的。


0
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <scope>runtime</scope>
</dependency>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.