常春藤通过Nexus代理

Mat*_*zak 11 proxy nexus ivy

有谁知道如何在常春藤中指定像Maven中的mirror/mirrorOf?我正在使用本地Maven代理(Nexus)并需要该工具来指定Nexus代理应访问哪些父存储库.

在Maven我做的很简单:

<mirrors>
  <mirror>
    <id>central-mirror</id>
    <mirrorOf>central</mirrorOf>
    <url>http://localhost:8081/content/repositories/central</url>
  </mirror>
</mirrors>
Run Code Online (Sandbox Code Playgroud)

但我在常春藤找不到这种选择.

Her*_*ron 8

你需要创建一个公共解析器来做你想要的(更多细节@ Ivy docs)

基本上将以下代码保存在$ USERHOME/.ivy2/ivysettings-public.xml下.这应该可以解决问题.

<ivysettings> 
  <resolvers> 
    <ibiblio name="public" m2compatible="true" root="http://localhost:8081/content/groups/public"/> 
  </resolvers> 
</ivysettings>
Run Code Online (Sandbox Code Playgroud)
  • 未修改的标准安装在URL中有'nexus'!
  • 如果您需要部署工件,我认为解决方案是执行与共享解析程序类似的操作(请参阅上面文档的链接),但我还没有尝试过.
  • 我更改了您的本地URL以解析为标准的'content/groups/public',这是更好的,因为在上面的maven设置片段中,您通过镜像传递所有呼叫,而不仅仅是中心的呼叫.只需在Nexus用户界面中添加任何其他存储库,就可以了.您应该没问题.
  • 如果你的项目加载它自己的ivysettings并不遵守默认值,那么这些设置将不会被加载,你再次回到零:(


Ric*_*ler 6

我不认为这种选择直接存在.您可以尝试实现一个,并将您的Nexus存储库置于该链的中心之前.如果我理解链如何正常工作(这是一个很大的问题),Ivy将在中心之前检查您的存储库,因此只要您的存储库具有相关内容,就不需要中心.

有关详细信息,请参阅教程

  • -1对Mark的评论.这不是一个不同的方式,它是一个缺少的功能.作为一个类比:想象一下,你使用的浏览器没有"代理配置"设置,但这并不意味着它以不同的方式接近网页浏览,这意味着当你真正需要时,软件是无法使用的(没有黑客)设置代理. (6认同)
  • Ivy只是采用不同的方式来处理依赖关系管理. (2认同)