Użyj publicznego repozytorium maven z ivy

Mam ivy.xml zawierający

<dependencies>
  <dependency org="commons-lang" name="commons-lang" rev="2.4"/>
  <dependency org="foo-bar" name="superwidgets" rev="1.5"/>
</dependencies>

Cały superwydget jest hostowany w repozytorium maven w http://example.com/m2 / . dokumentacja ivy wspomina o resolverach , ale wydaje się, że zakłada repozytorium ivy. Jak Mogę dodać jedno nieoficjalne repozytorium Mavena do ustawień ivy, które będzie używane tylko przez jeden moduł? (Albo Inaczej mówiąc, co odpowiada tagowi Mavena <repository> w ivy?) Nic wymyślnego, więc spodziewałbym się jednego linera w moim ivy.xml.

Author: ZhiXingZhe - WangYuQi, 2011-01-29

2 answers

Musisz dodać ivysettings.plik xml z listą następujących repozytoriów ( resolvers in ivy speak)

<ivysettings>
    <settings defaultResolver="chain"/>
    <resolvers>
        <chain name="chain">
            <ibiblio name="central" m2compatible="true"/>
            <ibiblio name="example" m2compatible="true" root="http://example.com/m2/"/>
        </chain>
    </resolvers>
</ivysettings>

Moim zdaniem bardziej sensowne jest oddzielenie deklaracji zależności (ivy.xml) z mechanizmu pobierania (ustawienia.xml). Nie jest to potrzebne w Maven, ponieważ obsługuje tylko jeden typ repozytorium.

Jeśli chcesz mieć naprawdę fantazję, możesz kontrolować, który respository obsługuje dany moduł:

<ivysettings>
    <settings defaultResolver="central"/>
    <resolvers>
        <ibiblio name="central" m2compatible="true"/>
        <ibiblio name="example" m2compatible="true" root="http://example.com/m2/"/>
    </resolvers>
    <modules>
        <module organisation="foo-bar" name="superwidgets" resolver="example"/>
    </modules>
</ivysettings>
 44
Author: Mark O'Connor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-27 22:25:01

Wolę łańcuszkowe resolvery, które zawierają również EBR SpringSource i Maven Central, jak to:

<ivysettings>
    <settings defaultResolver="spring-chain" />
    <resolvers>
        <chain name="spring-chain">
            <url name="com.springsource.repository.bundles.release">
                <ivy pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
                <artifact pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
            </url>
            <url name="com.springsource.repository.bundles.external">
                <ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
                <artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
            </url>
            <ibiblio name="ibiblio" m2compatible="true"/>
        </chain>
    </resolvers>
</ivysettings>

Chociaż nie używam ich bezpośrednio, wolę tworzyć i kontrolować własne lokalne repozytorium Ivy .

 7
Author: István,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-21 14:52:18