与ivy一起使用公共的maven仓库

我有一个ivy.xml包含

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

整个superwidget的东西托pipe在http://example.com/m2/的Maven仓库中。 常春藤文档提到了parsing器 ,但它似乎假定一个常春藤库。 我怎样才能添加一个非官方的Maven仓库到我的常春藤设置只能由一个模块使用? (或者换句话说,在ivy中对应于maven的<repository>标签?)没有什么奇特的,所以我期望在ivy.xml中有一行代码。

您需要添加一个ivysettings.xml文件与列出的以下存储库( parsing器在常春藤说话)

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

在我看来,将依赖声明(ivy.xml)与检索机制(settings.xml)分开是更有意义的。 这在Maven中是不需要的,因为它只支持一种types的存储库。

如果你想得到真正的幻想,你可以控制哪个存储库服务于一个特定的模块:

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

我更喜欢包含SpringSource的EBR和Maven Central的链式parsing器,如下所示:

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

虽然我不直接使用它们,但我更喜欢创build和控制自己的本地常青藤资源库 。