Wie fügt man den PostgreSQL-Treiber als Abhängigkeit in Maven hinzu?


78

Ich versuche, eine Java-Anwendung mit Maven zu entwickeln, während ich Hibernate mit einer PostgreSQL-Datenbank für die Persistenz verwende. Ich verstehe nicht, wie ich die PostgreSQL-Treiber mit meiner Anwendung verbinden soll. Ich verstehe, dass Sie Abhängigkeiten in Mavens pom.xml-Datei hinzufügen, die Jars aus einem Remote-Repository findet, aber was ist mit anderen Jars?


4
PostgreSQL- Treibergläser
madth3

1
Zu Ihrer Information: Wenn Sie in einer Web-App arbeiten, in der der JDBC-Treiber in Ihrem Webcontainer und nicht in Ihrer WAR-Datei bereitgestellt werden muss, lesen Sie meine Frage: Fügen Sie beim Programmieren und Kompilieren eine Bibliothek hinzu, schließen Sie sie jedoch vom Build aus. in NetBeans Maven-basierten Projekt .
Basil Bourque

Antworten:


108

PostgreSQL-Treibergläser sind im Central Repository von Maven enthalten:

Verwenden Sie für PostgreSQL bis 9.1:

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

oder für 9.2+

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

(Danke an @Caspar für die Korrektur)


9
Beachten Sie, dass sich für 9.2 und höher die Gruppen-ID für den JDBC-Treiber geändert hat, sodass Sie nach einer Gruppen-ID von org.postgresql anstelle von postgresql suchen müssen
Caspar

6
Der neueste PostgreSQL JDBC-Treiber unterstützt PostgreSQL Server 7.2+. Daher ist der erste Block (vor 9.2) nicht erforderlich. Sie finden die neuesten JDBC-Treiber auf der PostgreSQL-Site . Ihre Abhängigkeit von JDK 8- Treibern (JDBC 4.2) lautet: <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.4-1206-jdbc42</version> </dependency>
Jan Nielsen

3
Ab 2017-05 wurde die Nummerierung für den JDBC-Treiber von jdbc.postgresql.org neu gestartet, derzeit 42.1.1.
Basil Bourque

29

Aktualisierung für die neueste Version:

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

Quelle

Ich hoffe es hilft!


8
Ich denke nicht, dass diese Antwort notwendig ist. Erwägen Sie, eine Änderung zur akzeptierten Antwort beizutragen, wenn Sie nicht der Meinung VERSIONsind, dass diese indikativ genug ist, um die neueste Version zu erhalten.
Sotirios Delimanolis

Es ist, aber Sie müssen noch nach der neuesten Version suchen. Ist es nicht einfacher, wenn Sie alles hier haben?
facundofarias

17

Abhängig von Ihrer PostgreSQL-Version müssten Sie den postgresql-Treiber zu Ihrer pom.xmlDatei hinzufügen .

Für PostgreSQL 9.1 wäre dies:

<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>

Sie können den Code für die Abhängigkeit (sowie jede andere Abhängigkeit) aus dem zentralen Repository von maven abrufen

Wenn Sie postgresql 9.2+ verwenden:

<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>

Sie können die neuesten Versionen und Abhängigkeitsausschnitte überprüfen von:


3

Von der Website PostgreSQL vom 02.04.2016 ( https://jdbc.postgresql.org/download.html ):

"Dies ist die aktuelle Version des Treibers. Sofern Sie keine ungewöhnlichen Anforderungen haben (alte Anwendungen oder JVMs ausführen), sollten Sie diesen Treiber verwenden. Er unterstützt Postgresql 7.2 oder neuer und erfordert eine 1.6 oder neuere JVM. Er enthält Unterstützung für SSL und das Paket javax.sql. Wenn Sie 1.6 verwenden, sollten Sie die JDBC4-Version verwenden. Wenn Sie 1.7 verwenden, sollten Sie die JDBC41-Version verwenden. Wenn Sie 1.8 verwenden, sollten Sie die JDBC42-Version verwenden, wenn Sie diese verwenden Wenn Sie eine Java-Version älter als 1.6 haben, müssen Sie eine JDBC3-Version des Treibers verwenden, die notwendigerweise nicht aktuell ist. "


0
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <scope>runtime</scope>
</dependency>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.