生成 SQL 方案并将其复制到 WAR 文件中:插件问题依赖关系
在运行集成测试之前,我需要设置数据库。这包括生成 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 在执行自身之前调用生命周期阶段进程资源的执行。
提前致谢!
Before running integration tests I need to setup database. This include generating SQL-scheme (based on JPA-annotations), save it to file and copy it with other resources to directory which later will be used for creating war file (which will be deployed to Jetty).
So, I use following hibernate3-maven-plugin
configuration for generating SQL-scheme: http://pastebin.ubuntu.com/606229/
To copy resulting hsql-scheme.sql
from src/env/test/WEB-INF/classes
to target/
where it will be packaged to WAR-file I use following:
http://pastebin.ubuntu.com/606230/
But when I run mvn verify -P test
(yes, all these code inside separate profile) I've got: http://pastebin.ubuntu.com/606231/
As you can see hibernate3:hbm2ddl
does not generate any SQL-scheme and resulting file is empty (in other case we will see it on console also). And this is a problem.
The root of problem (as I understand) is because hibernate3:hbm2ddl invokes the execution of the lifecycle phase process-resources prior to executing itself
.
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个问题 帮助我修复了架构的创建:
在
prepare-package
阶段调用hibernate3:hbm2ddl
而不是generate-resources
放置
hibernate3:hbm2ddl< 的结果/code> 直接到
target/${build.finalName}/WEB-INF/classes
所以,现在我仍然有
hibernate3:hbm2ddl 在执行自身之前调用生命周期阶段进程资源的执行
警告,但是 filetarget/${build.finalName}/WEB-INF/classes/hsql-scheme.sql
不像以前一样为空。This question helped me to fix schema' creation:
call
hibernate3:hbm2ddl
atprepare-package
phase instead ofgenerate-resources
put result of
hibernate3:hbm2ddl
directly totarget/${build.finalName}/WEB-INF/classes
So, now I still have
hibernate3:hbm2ddl invokes the execution of the lifecycle phase process-resources prior to executing itself
warning, but filetarget/${build.finalName}/WEB-INF/classes/hsql-scheme.sql
not empty as before.