2010-02-05 62 views
4

maven user list中有類似的問題,但我有類似的情況。實現基於maven的安裝程序

我有一些服務,打包爲.WAR,它是由maven構建的。然而,這個.WAR文件需要定製:我需要以不同的方式打包它,具體取決於用戶輸入。基本上,用戶應該自己選擇組件,他想添加到WAR中,併爲這些組件定義一些簡單的配置。

我需要做的是:

  1. 創建一個「輕量級」 installator,不會包含任何行家 工件(或者,如果那是不可能的,包含所有的人=「重量級」 installator) 。
  2. 當最終用戶啓動installator,他被要求用於組件包裝的列表(=複選框)
  3. 對於每個組件,installator請求的配置選項(然後保存爲.property文件,每個部件的一個)
  4. 然後安裝程序僅提取需要的工件(由用戶選擇+必選的工件),並將這些工件中的屬性文件替換爲步驟3中的屬性文件(或將它們放到「類/」中)。
  5. 最後,它會創建隨時可用的WAR包並(可選)在後臺啓動tomcat(或jetty)。

IzPack只幫助解決步驟2。但是,有沒有什麼通用的解決方案?

回答

2

我不知道這樣做的任何通用解決方案,特別是將一個自定義的WAR。 IzPack 可以收集安裝參數(也許有助於解決第3步),IzPack 高級功能稱爲Web Installers,可以幫助解決第4步,但據我所知,它不是一個構建/打包工具,所以它贏不包括第5步(最重要的)。

也許一個maven原型可以幫助這裏(在交互模式下)。但我甚至不確定一個原型能夠提供您需要的靈活性水平。換句話說,這不會很簡單。其實,在你的情況下,我認爲螞蟻(Maven Ant Tasks或Ivy)是最好的選擇。我知道這不是你要求的,但我不認爲Maven是你的用例的正確工具。

+0

感謝您提供關於WebInstallers的信息 - 這是我不知道的。我建議: 1.安裝程序被用戶提取並運行。然後它: 2.檢查,如果maven安裝。如果沒有,它將maven解包到臨時目錄。 3.執行 MVN SCM:結帳-DconnectionUrl = SCM:SVN:HTTPS://gforge.mysite.com/svn/trunk/service -DcheckoutDirectory =服務 4.詢問爲需要的模塊,併產生在(更新)POM文件只是簽出'服務'目錄 5.要求額外選項並生成.property文件 6.執行 mvn包 在這種情況下使用IzPack有意義嗎? –

+0

@dma_k嗯,這不是一個簡單的用例,所以這需要測試,但是......也許。 –

相關問題