Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Maven - java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

Ändern Sie den Geltungsbereich in compile :

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.17</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

Was - da es sich um den Standardbereich handelt, dem Weglassen der Bereichsdefinition entspricht - gilt auch für den Typ:

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.17</version>
</dependency>

Schauen Sie sich das an:https://maven.apache .org/guides/introduction/introduction-to-dependency-mechanism.html für detaillierte Informationen zum Geltungsbereich.

Hier ist eine kurze Info für Ihren Hintergrund:

Sie haben den JDBC-Treiber mit einem Bereich runtime angegeben . Die meisten IDEs ignorieren sowieso die Bereiche und fügen alle Ihre Abhängigkeiten zu ihren hinzu Klassenpfad (z. B. der Klassenpfad, der verwendet wird, wenn Sie etwas außerhalb von Eclipse ausführen. Durch den Bereich runtime Sie sagen maven, dass es diese Abhängigkeit nicht in Ihr endgültiges JAR packen darf, da die Ausführungsumgebung "diese Abhängigkeit zur runtime bereitstellt". . Z.B. Sie müssten es entweder manuell zum Klassenpfad hinzufügen, wenn Sie Ihr JAR aufrufen, oder den Bereich auf compile ändern was dazu führt, dass das Treiber-Jar in Ihr JAR gepackt wird und zur Laufzeit verfügbar ist.