如何配置maven hbm2hbmxml和hbm2java在mvn clean install中依次运行

我需要能够调用mvn clean install并让maven调用hibernate3:hbm2hbmxml来从数据库生成映射文件,然后调用hbm2java来获取Java文件,然后让maven编译那些新创建的Java文件。 有没有人这样做过?

谢谢

如果你想编译你的模型java文件(通过reveng获得),你不需要运行hbm2hbmxml。

插件配置:

   org.codehaus.mojo hibernate3-maven-plugin 2.2    hbm2java src/main/java jdbcconfiguration    /src/main/resources/reveng/model.reveng.xml /src/main/resources/META-INF/hibernate.properties true true     mysql mysql-connector-java 5.0.8   cglib cglib-nodep 2.1_3      

hibernate.properties:

 hibernate.dialect = org.hibernate.dialect.MySQLInnoDBDialect hibernate.connection.driver_class = com.mysql.jdbc.Driver hibernate.connection.url = jdbc:mysql://localhost:3306/YOUR_DB hibernate.connection.username = yourUsrName hibernate.connection.password= yourPwd hibernate.default_schema = YOUR_DB 

model.reveng.xml:

      

你解雇这个:

 mvn clean hibernate3:hbm2java compile 

如果你想让它被解雇只是:

 mvn clean compile 

在插件定义中添加“executions”标记

    compile hbm2java   

这两个答案都没有为我开箱即用。 经过一番研究,我能够从数据库中生成POJO。 希望这快速追踪某人。

只需生成java文件 – 不生成映射文件。

在src / test / resources / reveng / hibernate.cfg.xml中定义数据库连接。 使用测试分支,这些文件不会复制到可分发工件中。

     oracle.jdbc.driver.OracleDriver  jdbc:oracle:thin:@server.domain.com:1521:catalog login **** PM   

创建要导入的表的列表。 再次在测试分支中:src / test / resources / reveng / model.reveng.xml

           

将hibernate3 maven插件添加到您的pom中

   ...  org.codehaus.mojo hibernate3-maven-plugin 2.2    hbm2java src/main/java/com/me/examples/pm/data jdbcconfiguration     src/test/resources/reveng/model.reveng.xml src/test/resources/reveng/hibernate.cfg.xml true true     com.oracle classes12 10.2.0.1.0   cglib cglib-nodep 2.1_3      

跑maven

 mvn hibernate3:hbm2java 

Maven生命周期

 mvn clean dependency:copy-dependencies package 

如果要执行此操作,则首先执行clean阶段(意味着它将运行clean生命周期的所有前一阶段,再加上clean阶段本身),然后执行依赖:copy-dependencies目标,最后执行package阶段(以及默认生命周期的所有先前构建阶段)。

所以, 也许

 mvn clean hibernate3:hbm2hbmxml hibernate3:hbm2java package 

也就是说,我建议不要永久生成类。 这让你非常不灵活。

在您的评论之后,它似乎是来自hibernate插件的“不明智”行为。 您可以使用Maven antrun插件通过“手动”将所需文件复制到所需目录来绕过它。

hibernate3-maven-plugin版本3.0hbm2java的工作示例

  hbm2java    org.codehaus.mojo hibernate3-maven-plugin 3.0             hbm2java   compile     org.hibernate hibernate-core 3.3.2.GA   cglib cglib-nodep 2.1_3   com.oracle.jdbc ojdbc6 ${ojdbc6.version}       

以下配置适合我。 (示例是使用Derby数据库和1个表)
mvn clean package做到了这一切。

插件配置:

  org.codehaus.mojo hibernate3-maven-plugin 2.2   hbm2hbmxml generate-sources  hbm2hbmxml     hbm2hbmxml src/main/resources      hbm2java generate-sources  hbm2java     hbm2java configuration    true /src/main/resources/hibernate.cfg.xml        org.apache.derby derbyclient 10.4.2.0   

hibernate.cfg.xml中:

   jdbc:derby://localhost:1527/demo app org.apache.derby.jdbc.ClientDriver org.hibernate.dialect.DerbyDialect password true   

在你的pom中添加Hibernate 2插件:

  org.codehaus.mojo hibernate3-maven-plugin 2.2   generate-mapping-files compile  hbm2hbmxml hbm2cfgxml hbm2java  ... 

然后在模型Reveng中把这个。

   

然后使用clean install在maven中构建项目,并从数据库自动生成模型类。