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?

Sotirios Delimanolis
quelle
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)

madth3
quelle
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!

facundofarias
quelle
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:

tftd
quelle
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. "

Daniel Sava
quelle
0
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <scope>runtime</scope>
</dependency>
ByteCode-Thread
quelle