Changez la portée en compile
:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
Ce qui - puisqu'il s'agit de la portée par défaut correspond à omettre la définition de la portée - même compte pour le type :
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
</dependency>
Jetez un oeil à ceci :https://maven.apache .org/guides/introduction/introduction-to-dependency-mechanism.html pour des informations détaillées sur la portée.
Voici une information rapide pour votre arrière-plan :
Vous avez spécifié le pilote JDBC pour avoir une portée runtime
. La plupart des IDE ignoreront de toute façon les portées et ajouteront toutes vos dépendances à leur classpath (par exemple, le classpath utilisé lorsque vous exécutez quelque chose en dehors d'eclipse. Par la portée runtime
vous dites à maven qu'il ne doit pas emballer cette dépendance dans votre fichier jar final puisque l'environnement d'exécution "fournira cette dépendance à runtime
. Par exemple. vous devrez soit l'ajouter manuellement au classpath lors de l'appel de votre jar, soit modifier la portée en compile
ce qui conduira à ce que le driver-jar soit emballé à l'intérieur de votre jar et disponible au moment de l'exécution.