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.