2

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

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

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

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

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

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

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

4

1 回答 1

1

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

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

另一种方法是有一个模块,其中hbm2ddl定义了目标的多次执行。但我担心这会破坏整个配置文件。

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

于 2010-10-06T17:50:40.243 回答