2010-10-06 142 views
2

我有一個支持多種數據庫的應用程序,包括SQL * Server 2008,Oracle 10G,Oracle 11G,MYSQL 5等。已經在Maven中完成了三件事:如何使用Maven處理多個數據庫模式創建腳本?

1)數據庫,以便系統可以在構建期間將其用於集成測試。

2)的Maven調用Hibernate3的插件來自動生成使用就是hbm2ddl架構腳本。

3)哈德森矩陣構建設置,使集成測試是針對每一個數據庫自動運行。

我已經注意到(沒有驚奇),通過就是hbm2ddl創建的腳本取決於數據庫方言是不同的。

然而,包裝爲客戶提供系統的時候,我們需要手動進入各種哈德森建立,並從那裏採摘數據庫特定腳本。一個乏味的過程,我相信會在最糟糕的時刻咬我們!

反正是有,我們可以有Maven的自動生成,然後收集了所有這些數據庫腳本,使他們能夠沿着側打包我們交付給客戶WAR文件?我正在考慮Maven assembly插件將它壓縮一切,但我不確定!

回答

1

無論如何,我們可以讓Maven自動生成,然後收集所有這些數據庫腳本,以便將它們一起打包發送給客戶的WAR文件? 我正在考慮Maven assembly插件將它壓縮一切,但我不確定!

的問題是,腳本是每個配置文件運行產生的(至少這是我的理解),除非你在某種獨特的文物打包他們(可能是組件)和安裝/在每次運行部署它們,您將無法在Maven的後續步驟中抓取它們。

的替代方案是具有所定義的hbm2ddl目標幾個執行模塊。但我擔心這會打敗整個配置文件。

或者你也許可以使用M2 Extra Steps Plugin來依賴Hudson併爲Maven構建添加一些構建後步驟(不知道這是否有幫助)。

+0

不知道這會有所幫助,但讓我知道你的想法。 – 2010-10-06 17:50:58

+0

想了一些之後,我認爲使用Maven的數據庫機制可能是錯誤的。這對於開發者機器來說非常簡單和有用!但是對於CI構建機器...並不好。 – HDave 2010-10-06 18:22:50

+0

@帕斯卡爾 - 我正在認真考慮放棄hbm2ddl並與Liquibase合作。隨着項目的成熟,我將不得不提供不同版本之間的遷移路徑。它看起來也是標籤工具可以很好地處理集成測試數據的加載。我唯一的問題是讓Maven liquibase插件在所有方言中生成SQL腳本...... – HDave 2010-10-06 21:28:01

相關問題