将本地maven存储库推送到服务器

时间:2018-04-12 17:00:36

标签: java maven-3 nexus

我正在为我的工作场所设置一个maven存储库。建立新的私有存储库的主要原因是,我们最初的nexus repo隐藏在VPN网络后面。所以任何希望拉动依赖关系的人。他需要在工作机器中建立VPN连接。目标是在新创建的repo下制作VPN安全文物,使其可用于CI管道。

现在我正在执行以下操作,使用以下命令列出所有依赖项:

mvn -Dmdep.copyPom=true dependency:copy-dependencies

将目标/依赖项下的所有jar发送。

然后我使用以下maven命令:

mvn deploy:deploy-file 

在我新创建的nexus中推送所有依赖项,问题是在设置deploy-file命令期间我传递的是一个通用的组ID。并且所有的罐子都被推到了那个groupid之下。这与我的本地名称namespace / groupid不同,因为不同的包在不同的组ID下,并且在同一组ID下推送所有这些包使得它们无法使用,因为它与命名空间混淆。

我是maven的新手,我采取的方法感觉就像一个黑客。我可以使用maven本机功能来解决问题吗?解决这个问题的标准方法是什么?

1 个答案:

答案 0 :(得分:1)

Nexus有一个代理存储库的概念,对于开源依赖,您可以创建代理存储库来镜像maven中央存储库,并在代理信息中提供maven设置并运行mvn安装,在maven的资源生成阶段nexus将自动从中央仓库中提取工件并将其缓存在代理存储库中以备将来使用。