如何使用Maven处理多个数据库模式创建脚本?

时间:2010-10-06 13:48:36

标签: database maven-2 build packaging hbm2ddl

我的开发应用程序支持多个数据库,包括SQL * Server 2008,Oracle 10G,Oracle 11G,MYSQL 5等。已经在Maven中我做了三件事:

1)每个数据库都有一个配置文件,以便系统可以在构建期间使用它进行集成测试。

2)Maven调用hibernate3插件,使用hbm2ddl自动生成模式脚本。

3)设置Hudson矩阵构建,以便自动对每个数据库运行集成测试。

我注意到(毫不奇怪)hbm2ddl创建的脚本因数据库方言而异。

但是,在为客户打包系统时,我们必须手动进入各种Hudson构建并从那里获取特定于数据库的脚本。一个繁琐的过程,我肯定会在最糟糕的时刻咬我们!!

有没有我们可以让Maven自动生成然后收集所有这些数据库脚本,以便它们可以与我们发送给客户的WAR文件一起打包?我在考虑使用Maven程序集插件将其全部压缩,但我不确定!

1 个答案:

答案 0 :(得分:1)

  

有没有我们可以让Maven自动生成然后收集所有这些数据库脚本,以便它们可以与我们发送给客户的WAR文件一起打包?   我在考虑使用Maven程序集插件将其全部压缩,但我不确定!

问题是脚本是为每个配置文件运行生成的(至少这是我的理解),除非你将它们打包成某种不同的工件(可能是程序集)并在每次运行时安装/部署它们,否则你赢了在Maven的后续步骤中能够抓住它们。

另一种方法是让一个模块定义多个hbm2ddl目标的执行。但我担心这会打败整个档案的东西。

或者您可以使用M2 Extra Steps Plugin依赖Hudson并为Maven构建添加一些构建后的步骤(不确定这是否有帮助)。