Mysql
 sql >> Baza danych >  >> RDS >> Mysql

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

Zmień zakres na compile :

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

Co — ponieważ jest to zakres domyślny, odpowiada w ogóle pominięciu definicji zakresu — to samo liczy się dla typu:

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

Spójrz na to:https://maven.apache .org/guides/introduction/introduction-to-dependency-mechanism.html aby uzyskać szczegółowe informacje na temat ustalania zakresu.

Oto krótkie informacje o Twoim tle:

Określiłeś, że sterownik JDBC ma zakres runtime . Większość IDE i tak zignoruje zakresy i doda wszystkie Twoje zależności do ich ścieżka klasy (np. ścieżka klasy używana, gdy uruchamiasz coś poza zaćmieniem. Według zakresu runtime mówisz mavenowi, że nie może pakować tej zależności do twojego ostatniego jara, ponieważ środowisko wykonawcze „zapewni tę zależność w runtime . Np. musiałbyś albo ręcznie dodać go do ścieżki klasy podczas wywoływania swojego jara, albo zmienić zakres na compile co doprowadzi do zapakowania słoika ze sterownikami do słoika i udostępnienia go w czasie wykonywania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wybrać określone pola w Laravel Eloquent?

  2. MySql :Przyznaj opcje tylko do odczytu?

  3. Jak korzystać z wielu baz danych w Laravel?

  4. MySQL i PHP - jak wyświetlić wszystkie wiersze, w których wartość pola jest równa x?

  5. Drzewo MySQL uporządkowane według rodzica i dziecka