我正在使用Maven构建一个Java项目。我现在试图让hibernate3-maven-plugin运行hbm2ddl工具来生成一个schema.sql文件,我可以用来从我的带注释的域类创建数据库模式。这是一个使用Hibernate作为提供程序的JPA应用程序。
在我的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>
答案 0 :(得分:0)
我明白了。您必须添加相应的JDBC驱动程序作为PLUGIN的依赖项。将其添加为模块的依赖项不会做任何事情。这对我来说实在令人惊讶,实际上有点蹩脚。
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<type>jar</type>
<version>5.0.8</version>
</dependency>
</dependencies>