我使用下面的插件生成我的实体类。 当我执行命令 mvn hibernate3:hbm2java 我确实收到了这个错误:
创建 AntRun 任务时出错。:发生 Ant BuildException:java.lang.NoClassDefFoundError: org/hibernate/engine/Mapping: org.hibernate.engine.Mapping
我确实尝试了每个休眠版本,但我找不到包含指定类的版本。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>3.0</version>
<executions>
<execution>
<id>generate-entities</id>
<phase>post-clean</phase>
<goals>
<goal>hbm2java</goal>
</goals>
</execution>
</executions>
<configuration>
<hibernatetool destdir="${project.build.sourceDirectory}">
<classpath>
<path location="${project.build.sourceDirectory}/classes"/>
</classpath>
<!--<configuration configurationfile="src/main/resources/hibernate/hibernate.cfg.xml"/> -->
<jdbcconfiguration
packagename="com.cm.sourcegenerator"
revengfile="src/main/resources/hibernate/hibernate.reveng.xml"
/>
<hbm2java jdk5="true" ejb3="true"/>
<!--<hbm2cfgxml ejb3="true" destdir="${basedir}/src/main/resources/hibernate" /> -->
</hibernatetool>
</configuration>
<dependencies>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>${cglib.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.11.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.11.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.1.0.Final</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.2</version>
</dependency>
</dependencies>
</plugin>
Mapping接口在Hibernate 4及之后的版本中被移除。相反,您可以使用 MetadataImplementor 接口来访问实体的元数据。
因为您使用的是 Hibernate 4.3.11。最后,您可以尝试更改 hibernate3-maven-plugin 配置以使用 MetadataSources 工具而不是 HibernateTool。您可以通过将当前配置替换为:
<metadataSources destdir="${project.build.sourceDirectory}">
<classpath>
<path location="${project.build.sourceDirectory}/classes"/>
</classpath>
<configuration>
<jdbc-connection>
<!-- your database connection details here -->
</jdbc-connection>
<hibernate-mapping package="com.cm.sourcegenerator">
<fileset dir="${basedir}/src/main/resources/hibernate">
<include name="**/*.hbm.xml"/>
</fileset>
</hibernate-mapping>
</configuration>
</metadataSources>