Как получить hibernate3-maven-plugin hbm2ddl, чтобы найти драйвер JDBC? - PullRequest
1 голос
/ 14 мая 2010

У меня есть проект 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 Ответ

0 голосов
/ 14 мая 2010

Я понял это. Вы должны добавить соответствующий драйвер JDBC как зависимость от PLUGIN. Добавление его в качестве зависимости от модуля ничего не дает. Это кажется мне удивительным и на самом деле отстойным.

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <type>jar</type>
            <version>5.0.8</version>
        </dependency>
    </dependencies>   
...