我有两个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存储库?
我是否需要在UAT机器上安装maven存储库?
我可以想到的一种可能方式是设置和托管组织内maven存储库,以及在UAT机器上设置maven以从组织内部maven存储库中获取数据。并仅部署pom.xml。
答案 0 :(得分:1)
我会让我的选择取决于你的工件的消费者是什么。
如果消费者也是可以从所述组织内Maven存储库中提取JAR的Maven项目,那绝对是一个很好的方法。我相信每个认真使用Maven的组织迟早都会为自己的存储库设置用例。我曾与Artifactory和Nexus合作过,觉得两者都是很棒的产品(如此处所述的用例免费啤酒)。它们都很容易安装,它不应该是一个令人生畏的探索,去吧!
如果您的UAT计算机将使用Maven构建和安装任何将您的工件作为依赖项进行安装,那么它们将运行Maven客户端。这些客户端上会有一个本地存储库(工件缓存),但这与上面提到的组织存储库不同,您可能不会在实际的UAT计算机上部署这些存储库。
如果mv-proj2
是一个“最终交付”,正如你所说的可执行文件,你可能想把它打包成一个漂亮的单一JAR(Maven可以为你做到这一点)并将其分发给你的用户。您可以通过组织存储库再次执行此操作。您最终可以将其发布到某个网络驱动器或Web服务器。许多方法,例如,使用maven-jar-plugin和outputDirectory指向你想要释放的地方。