Java 部署maven项目的标准方法

Java 部署maven项目的标准方法,java,maven,deployment,Java,Maven,Deployment,我有两个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项目,需要通过自动部署过程进行部署。(如夜间建造或类似建造)
情况如下:

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 respository,以及在UAT机器上设置maven以从组织内maven respository获取数据。并且只部署pom.xml。

我会让我的选择取决于您的工件的消费者是什么

如果消费者也是Maven项目,可以从组织内Maven存储库中提取JAR,那么这肯定是一个很好的方法。我相信每一个认真对待使用Maven的组织迟早都会有这样一个自己的存储库的用例。我曾与Artifactory和Nexus合作过,觉得它们都是很棒的产品(以及此处所述的免费啤酒)。他们都很容易安装,这不应该是一个令人望而生畏的探索,去吧

如果您的UAT机器将使用Maven来构建和安装作为依赖项拉入您的工件的任何东西,那么它们将运行Maven客户端。这些客户机上可能会有一个本地存储库(工件缓存),但这与上面提到的组织存储库不同,您可能不会将其部署在实际的UAT机器上

如果
mv-proj2
是一个“最终交付”,正如您所说的可执行文件,那么您可能希望将其打包为一个漂亮的单个JAR(Maven可以为您这样做),并将其分发给您的用户。您可以通过组织存储库再次执行此操作。您可以最终将其发布到某个网络驱动器或web服务器。有很多方法可以做到这一点,例如使用maven jar插件,outputDirectory指向您想要发布的任何地方