Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

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


Altere o escopo para compile :
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.17</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

Que - como é o escopo padrão, corresponde a deixar de lado a definição de escopo - as mesmas contagens para o tipo:
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.17</version>
</dependency>

Dê uma olhada nisso:https://maven.apache .org/guides/introduction/introduction-to-dependency-mechanism.html para obter informações detalhadas sobre o escopo.

Aqui está uma informação rápida para o seu plano de fundo:

Você especificou o driver JDBC para ter um escopo runtime . A maioria dos IDEs ignorará os escopos e adicionará todas as suas dependências aos deles classpath (por exemplo, o classpath usado quando você executa algo fora do Eclipse. Pelo escopo runtime você está dizendo ao maven que ele não deve empacotar essa dependência em seu jar final, pois o ambiente de execução "fornecerá essa dependência em runtime . Por exemplo. você teria que adicioná-lo manualmente ao classpath ao chamar seu jar ou alterar o escopo para compile o que levará o driver-jar a ser empacotado dentro do seu jar e disponível em tempo de execução.