Достъп до вътрешно maven repo от IVY

Наблизо използваме хранилище на Sonatype Maven. Това е много хубаво за нашите maven проекти, но имаме наследено приложение, което използва Ant+IVY за управление на зависимостите, което сега се нуждае от dep от Maven.

Моят файл с настройки на 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"/>

и получи същия резултат.

Предполагам, че има нещо в идентификационните данни, които съм сбъркал.


person Paul McKenzie    schedule 01.07.2010    source източник


Отговори (3)


Трябва също да посочите областта с вашите идентификационни данни, нещо подобно:

<credentials host="hostname" realm="Sonatype Nexus Repository Manager" username="username" passwd="xxx"/>
person Maarten Coene    schedule 20.07.2010
comment
Хм, ще опитам това. Как бих открил истинското име на царството, което се чудя? - person Paul McKenzie; 20.07.2010

Ето, опитайте това:

<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. Уведомете ме, ако имате проблеми.

person Tim O'Brien    schedule 31.07.2010

Обикновено използвам резолвера ibiblio, когато говоря с nexus .

<ibiblio name="reponame" m2compatible="true" root="http://nexus-url/reponame"/>
person Mark O'Connor    schedule 01.07.2010
comment
Намирате ли се зад прокси сървър? Чиста спекулация от моя страна. Опитвам се да установя защо ivy не успява да извлече URL, който съществува през вашия уеб браузър. Опитайте да стартирате ANT в подробен режим, ще получите повече подробности, които може да хвърлят светлина върху грешката. - person Mark O'Connor; 02.07.2010