2013-04-18 126 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指向你想发布的任何地方。