Pregunta

Tengo un proyecto Java Estoy construyendo con Maven. Ahora estoy tratando de conseguir el Hibernate3-maven-plugin para ejecutar la herramienta hbm2ddl para generar un archivo schema.sql que puedo utilizar para crear el esquema de la base de mis clases de dominio anotados. Se trata de una aplicación que utiliza JPA de Hibernate como el proveedor.

En mi archivo persistence.xml digo en voz alta el conductor mysql:

<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>

Al ejecutar Maven, lo veo el procesamiento de todas mis clases, pero cuando se va a la salida del esquema, me sale el siguiente error:

ERROR org.hibernate.connection.DriverManagerConnectionProvider - JDBC Driver class not found: com.mysql.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Tengo el controlador MySQL como una dependencia de este módulo. Sin embargo parece que la herramienta hbm2ddl no puede encontrarlo. Me hubiera imaginado que el plugin Maven habría conocido a buscar el archivo de repositorio local de Maven para este controlador. Lo que da?

La parte pertinente de mi pom.xml es la siguiente:

<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>
¿Fue útil?

Solución

lo he descubierto. Usted tiene que añadir el correspondiente controlador JDBC como una dependencia del complemento. Añadiéndolo como una dependencia del módulo no hace nada. Esto parece sorprendente para mí y algo escaso en realidad.

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <type>jar</type>
            <version>5.0.8</version>
        </dependency>
    </dependencies>   
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top