Я пытаюсь использовать Maven Shade для сборки Uber Jar. Все работает, он строит делает uber jar, который я запускаю из файла BAT: материал без базы данных работает нормально, но по какой-то причине MySQL-Connector не найден в пути к классам.Maven-Shade MySQL classnotfound
2014-09-08 17:14:00 DEBUG DatabaseConnectionFactory:47 - Creating a new database connection
2014-09-08 17:14:00 ERROR DatabaseConnectionFactory:53 - java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/myDB?user=root&password=
The Maven плагин находятся в моем родительском П, и зависимости в дочерних POMS, (хотя я пытался ставить плагин в модуле POM DB тоже, но безрезультатно.)
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
При поиске решения я добавляю -cp в загружаемую банку в командной строке, но я не могу получить найденный коннектор! Вся программа работает в моей среде IDE, никаких проблем.
Я прочитал пару других сообщений с участием Shade, из которых я так и не нашел достаточно ясного (достаточно ясно для меня (без комментариев))! Ответы обычно оговариваются с помощью плагина сборки. Тем не менее, я хотел бы придерживаться Shade, поскольку все упрощает.
Я добавил вырезанный POM ниже, и я надеюсь, что кто-то может мне помочь!
Большое спасибо!
<execution>
<id>myClient</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<outputFile>C:\Dev\myJar.jar</outputFile>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>myapp.ClientStart</mainClass>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>properties/**</exclude>
<exclude>images/**</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
Никогда не использовался оттенок, только монтажный плагин, но, пожалуйста, проверьте, есть ли у jar пакет mysql. Если это не так, как вы знаете, это проблема конфигурации плагина. – dimoniy
@dimoniy Почему бы не использовать maven-shade-plugin? Что случилось? – khmarbaise
У меня такая же проблема. И это происходит как с сборкой, так и с теневым плагином. В моем проекте реализовано только 1 java.sql.Driver. META-INF/services/java.sql.Driver существует и является правильным. Если я добавлю Class.forName («com.mysql.jdbc.Driver») в качестве первой строки моей основной точки входа, нет исключения, но она не устраняет проблему . – Gert