在运行集成测试之前,我需要设置数据库。这包括生成SQL方案(基于JPA注释),将其保存到文件并将其与其他资源复制到目录,稍后将用于创建war文件(将部署到Jetty)。
因此,我使用以下hibernate3-maven-plugin
配置来生成SQL方案:http://pastebin.ubuntu.com/606229/
要将生成的hsql-scheme.sql
从src/env/test/WEB-INF/classes
复制到target/
,然后将其打包到WAR文件中,我使用以下方法:http://pastebin.ubuntu.com/606230/
但是当我运行mvn verify -P test
(是的,所有这些代码都在单独的配置文件中)时,我得到了: http://pastebin.ubuntu.com/606231/
如您所见hibernate3:hbm2ddl
不会生成任何 SQL 方案,并且生成的文件为空(在其他情况下,我们也将在控制台上看到它)。这是一个问题。
问题的根源(据我了解)是因为hibernate3:hbm2ddl invokes the execution of the lifecycle phase process-resources prior to executing itself
.
提前感谢!
这个问题帮助我修复了架构的创建:
-
在
prepare-package
阶段呼叫hibernate3:hbm2ddl
而不是generate-resources
-
将
hibernate3:hbm2ddl
的结果直接放在target/${build.finalName}/WEB-INF/classes
所以,现在我仍然有hibernate3:hbm2ddl invokes the execution of the lifecycle phase process-resources prior to executing itself
警告,但文件不像以前那样target/${build.finalName}/WEB-INF/classes/hsql-scheme.sql
空。