常春藤通过Nexus代理

时间:2009-06-23 16:58:32

标签: proxy ivy nexus

有谁知道如何在常春藤中指定像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>

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

5 个答案:

答案 0 :(得分:8)

您需要创建一个符合您需要的公共解析器(更多详情@ Ivy docs

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

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

答案 1 :(得分:6)

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

有关详细信息,请参阅tutorial

答案 2 :(得分:2)

这就是我的工作方式(@Heron的回答对我不起作用):

使用以下内容创建文件:

<ivysettings>
  <settings defaultResolver="default"/>
  <property name="m2-pattern" value="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]" override="false" />
  <resolvers>
    <chain name="default">
        <ibiblio name="public" m2compatible="true" root="http://nexus-server:8081/nexus/content/groups/public"/>
    </chain>
  </resolvers>
</ivysettings>

从ant build中引用它:

<ivy:settings file="/Users/wdb/.ivy2/ivysettings-public.xml" />

Ivy现在能够解析我的nexus存储库中的依赖项。

答案 3 :(得分:-1)

我和Archiva做过同样的事情,非常相似。您只需要在新链中声明以下内容:

<chain name="private">
<url name="archiva" m2compatible="true">
  <ivy pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/ivy.xml" /> 
  <artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
  <artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact].[ext]" /> 
  </url>
</chain>

答案 4 :(得分:-1)

Archiva管理Maven 2存储库(使用Maven元数据的工件) 通常没有常春藤元数据(ivy.xml)。 Maven 2布局是[组织] / [模块] / [修订] / [工件] - [修订]。[ext]。

我们只需提供以下信息

<url name="archiva" m2compatible="true">
  <artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
  </url>
</chain>

  <settings defaultResolver="archiva"/>
  <resolvers>
<ibiblio name="archiva" m2compatible="true" root="http://.../archiva/repository/internal/[organization]/[module]/[revision]/[artifact]-[revision].[ext]"/>
  </resolvers>