Как получить hibernate3-maven-plugin hbm2ddl, чтобы найти драйвер JDBC?
У меня есть проект Java, который я создаю вместе с Maven. Сейчас я пытаюсь заставить hibernate3-maven-plugin запустить инструмент hbm2ddl для создания файла schema.sql, который я могу использовать для создания схемы базы данных из моих аннотированных классов доменов. Это приложение JPA, которое использует Hibernate в качестве поставщика.
В моем файле persistence.xml я вызываю драйвер mysql:
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
Когда я запускаю Maven, я вижу, что он обрабатывает все мои классы, но когда он идет на вывод схемы, я получаю следующую ошибку:
ERROR org.hibernate.connection.DriverManagerConnectionProvider - JDBC Driver class not found: com.mysql.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
У меня есть драйвер MySQL как зависимость этого модуля. Однако кажется, что инструмент hbm2ddl не может его найти. Я бы предположил, что плагин Maven мог бы искать этот драйвер в локальном хранилище файлов Maven. Что дает?
Соответствующая часть моего pom.xml такова:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>hbm2ddl</goal>
</goals>
</execution>
</executions>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>jpaconfiguration</implementation>
</component>
</components>
<componentProperties>
<persistenceunit>my-unit</persistenceunit>
</componentProperties>
</configuration>
</plugin>
1 ответ
Я понял. Вы должны добавить соответствующий драйвер JDBC как зависимость от PLUGIN. Добавление его в качестве зависимости от модуля ничего не дает. Это кажется мне удивительным и отчасти хромым на самом деле.
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<type>jar</type>
<version>5.0.8</version>
</dependency>
</dependencies>