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

J'ai une application Java basé sur Maven, et que vous voulez connecter au serveur MySQL.

Mon pom a:

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

Avec runtime, que je veux me connecter au serveur MySQL lors de l'exécution - ont également essayé de compiler et de condition, mais ne fonctionne pas.

Le code SQL est un standard:

String dbClass = "com.mysql.jdbc.Driver";

Class.forName(dbClass);
Connection connection = DriverManager.getConnection(dbUrl,
    username, password);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
    String tableName = resultSet.getString(1);
    System.out.println("Table name : " + tableName);
}

Lorsque j'exécute ce de Eclipse, il fonctionne très bien et imprime les noms de table.

Cependant, à partir de maven, le produit INSTANTANÉ donne toujours une erreur lors de l'exécution, par >java -jar target\File.jar après l'exécution de mvn clean install.

java.lang.ClassNotFoundException: com.mysql.jdbc.Pilote

Ce qui me manque ici pour obtenir le maven build de travail? L'exécution de mvn clean install donne aucune erreur et s'appuie amende. C'est seulement lors de l'exécution de l'INSTANTANÉ exe erreur se produit.

MySQL pot est dans mon .m2 repo, et j'ai essayé d'ajouter explicitement via mvn ligne de commande, mais il dit qu'il existe déjà.

  • Est le m2 repo sur le chemin de la classe? Votre IDE généralement ajouter lors du lancement d'elle, mais si vous le lancez à partir de la ligne de commande, vous pourriez avoir à le spécifier manuellement.
InformationsquelleAutor pokero | 2015-03-24