如何配置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.0和hbm2java的工作示例
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中构建项目,并从数据库自动生成模型类。