pom plugin central maven-2 artifactory ivy

maven 2 - plugin - Utilice un repositorio maven público con hiedra



maven repository local (2)

Tengo un ivy.xml contiene

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

Todo el contenido de superwidget está alojado en un repositorio de maven en http://example.com/m2/ . La documentación de la hiedra menciona los resolvedores , pero parece asumir un repositorio de hiedra. ¿Cómo puedo agregar un único repositorio maven no oficial a mi configuración de hiedra para ser utilizado solo por un solo módulo? (O dicho de otro modo, ¿qué corresponde a la etiqueta <repository> maven en hiedra?) No tiene nada de lujoso, por lo que esperaría una sola línea en mi ivy.xml.


Necesita agregar un archivo ivysettings.xml con los siguientes repositorios listados (los resolvers en hiedra hablan)

<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>

En mi opinión, tiene más sentido separar la declaración de dependencia (ivy.xml) del mecanismo de recuperación (settings.xml). Esto no es necesario en Maven porque solo admite un tipo de repositorio.

Si quieres ser realmente sofisticado, puedes controlar qué repositorio sirve un módulo en particular:

<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>


Prefiero los solucionadores encadenados que incluyen EBR de SpringSource y Maven Central también, así:

<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>

Aunque no los uso directamente, prefiero crear y controlar mi propio repositorio Ivy local .