Maven在代理后面

4

以下是需要翻译的内容:

我们有一个相当大的项目,我正在尝试将其mavenize。因此,我们安装了自己的nexus仓库管理器。到目前为止,一切都正常,但现在我们面临这样的情况:每个开发人员都必须在settings.xml中输入代理用户名和密码以从外部获取构件(即互联网)。

不幸的是,开发人员需要不时更改他们的代理密码,并需要再次调整settings.xml

与我们的nexus的连接并未通过代理路由。是否有可能配置像DNS一样的方法:

  1. 客户端A向(公司内部、非代理)nexus请求获取a.jar构件。
  2. a.jar并没有在本地repos中,所以nexus会从maven中央库中检索该构件并将其存储在本地缓存中。
  3. 客户端A获得a.jar构件,就好像它直接来自于公司nexus。
  4. 大家都很开心 :)

你的 Nexus 是否已连接到互联网,即使通过代理/防火墙或不是?在这两种情况下,Nexus 都将作为代理为您提供服务。如果由于任何原因它无法访问互联网,则每个开发人员都必须设置自己的 settings.xml。 - Jean-Rémy Revy
2个回答

3

一旦您回答了我的问题,我将为您提供更准确的答案,但无论如何,以下是实现您想要的最佳方法。

Nexus、Artifactory和其他repo管理器(如smw所指出的),可以充当代理。它们将接收您的请求,在自己的数据库中搜索您的工件,如果没有找到任何内容,则访问Internet。

您必须配置Nexus,告诉它要镜像哪个repo,并可选择给它代理凭据:


抱歉回复晚了,我离开了几天。是的,我们的nexus已连接到互联网,并且在按照您的链接后,现在可以正常工作 :)我在settings.xml中添加了一个中央镜像:`<mirrors> <mirror> <id>central-proxy</id> <name>Local proxy of central repo</name> <url>http://mynexus:8080/nexus/content/repositories/central/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> ` 现在,即使尝试访问maven central也会通过我们的nexus代理。非常感谢! - Jan Engler

1

一个仓库管理器可以为您完成这项工作。 Maven网站上有一个list


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接