从IVY访问内部maven回购

时间:2010-07-01 16:56:19

标签: maven-2 ivy

下文中,我们使用Sonatype Maven存储库。这对于我们的maven projetcs来说非常好用,但我们有一个遗留应用程序,它使用Ant + IVY进行依赖管理,现在需要来自Maven的dep。

我的IVY设置文件如下:

<ivysettings>
    <property name="dsnexus-root" value="http://internal-url/" override="false"/>

    <credentials host="hostname" username="username" passwd="XXXX"/>

    <!-- ... -->

    <resolvers>
        <chain name="shared">
            <url name="shared-default">
                <!-- ... -->
            </url>
            <url name="dsnexus-public" m2compatible="true">
                <artifact pattern="${dsnexus-root}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
            </url>
        </chain>
    </resolvers>

    <modules>
        <module organisation=".*" name=".*" resolver="shared"/>
    </modules>

    <!-- ... -->
</ivysettings>

但是当我尝试解决我的deps时,它没有从内部仓库找到任何东西

e.g。

module not found: xerces#xercesImpl;2.9.1
==== shared-default: tried
...
==== dsnexus-public: tried
-- artifact xerces#xercesImpl;2.9.1!xercesImpl.jar:
http://internal-url/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar

当然,dep确实存在于该URL上。

我也试过

<ibiblio name="dsnexus-public" 
    root="${dsnexus-root}" 
    m2compatible="true" 
    namespace="maven2"/>

得到了相同的结果。

我的猜测是有一些关于我出错的凭据。

3 个答案:

答案 0 :(得分:3)

您还应该使用您的凭据指定领域,如下所示:

<credentials host="hostname" realm="Sonatype Nexus Repository Manager" username="username" passwd="xxx"/>

答案 1 :(得分:2)

在这里,试试这个:

<ivysettings>
  <settings defaultResolver="nexus" 
            checkUpToDate="true" />

  <credentials host="localhost" 
           realm="Sonatype Nexus Repository Manager" 
           username="admin"
           passwd="admin123"/>
  <resolvers>
    <ibiblio name="nexus" m2compatible="true" 
             root="http://localhost:8081/nexus/content/groups/public/"/>
    <url name="releases" m2compatible="true">
        <artifact pattern="http://localhost:8081/nexus/content/repositories/releases/[organization]/[module]/[revision]/[artifact]-[revision].[ext]"/>
        <ivy pattern="http://localhost:8081/nexus/content/repositories/releases/[organization]/[module]/[revision]/ivy-[revision].xml"/>
    </url> 
  </resolvers>
</ivysettings>

使用Nexus 1.7.1完美适合我。如果您有任何问题,请告诉我。

答案 2 :(得分:0)

在与nexus交谈时,我通常使用ibiblio解析器。

<ibiblio name="reponame" m2compatible="true" root="http://nexus-url/reponame"/>