2013-04-18 130 views
0

我有兩個maven項目,我需要通過自動部署過程進行部署。 (如每晚構建或類似)
場景爲:部署maven項目的標準方法

mv-proj1 
-dependency-1.jar 
-dependency-2.jar 
-dependency-3.jar 
mv-proj2 
-dependency-3.jar 
-dependency-4.jar 
-mv-proj1.jar 

MV-proj1和MV-proj2的源不能被披露。
mv-proj2是可執行的jar文件並向其他應用程序模塊提供服務。

那麼將它們部署到生產機器的標準方式是什麼?或者可以說UAT機器是什麼?
我是否需要設置組織內的Maven存儲庫?
我是否需要將Maven存儲庫安裝到UAT機器上?


我想到的一種可能的方式是設置和託管組織內的maven倉庫,並在UAT機器上設置maven以從組織內的maven倉庫獲取數據。並只部署pom.xml。

回答

1

我會讓我的選擇取決於你的工件的消費者是什麼。

如果消費者也是Maven項目,可以從組織內的Maven倉庫中獲取JAR,那絕對是一個很好的選擇。我相信每個認真使用Maven的組織遲早都會爲這些自己的存儲庫提供用例。我曾與Artifactory和Nexus合作過,並認爲這兩款產品都是非常棒的產品(以及此處所述的免費啤酒)。他們都很容易安裝,它不應該是一個艱鉅的探索,去吧!

如果你的UAT機器會使用Maven來構建和安裝任何將你的構件作爲依賴項拉入的東西,那麼它們將運行Maven客戶端。這些客戶端上會有一個本地存儲庫(工件高速緩存),但這與上面提到的組織存儲庫不同,它可能不會部署在實際的UAT計算機上。

如果mv-proj2是一個相當「最終交付」的可執行文件,如您所說,您可能希望將它打包成一個不錯的單個JAR(Maven可以爲您完成)並將其分發給您的用戶。您可以通過組織存儲庫再次執行此操作。您最終可能會將其發佈到某個網絡驅動器或Web服務器。許多方法可以做到這一點,例如使用maven-jar-plugin和outputDirectory指向你想發佈的任何地方。