有谁知道如何在常春藤中指定像Maven中的mirror / mirrorOf?我正在使用本地Maven代理(Nexus)并且需要该工具来指定Nexus代理应该访问哪些父存储库。
在Maven我做的很简单:
<mirrors>
<mirror>
<id>central-mirror</id>
<mirrorOf>central</mirrorOf>
<url>http://localhost:8081/content/repositories/central</url>
</mirror>
</mirrors>
但我在常春藤找不到这种选择。
我不认为这种选择直接存在。你可以尝试实现一个 链,并将您的Nexus存储库置于该链中的核心位置。如果我理解链是如何正常工作的(这是一个很大的问题),Ivy会在中心之前检查你的存储库,所以只要你的存储库有相关内容就不需要。
见 教程 详情。
我不认为这种选择直接存在。你可以尝试实现一个 链,并将您的Nexus存储库置于该链中的核心位置。如果我理解链是如何正常工作的(这是一个很大的问题),Ivy会在中心之前检查你的存储库,所以只要你的存储库有相关内容就不需要。
见 教程 详情。
你需要创建一个符合你想要的公共解析器(更多细节@ 常春藤文档)
基本上将以下代码保存在$ USERHOME / .ivy2 / ivysettings-public.xml下。这应该可以解决问题。
<ivysettings>
<resolvers>
<ibiblio name="public" m2compatible="true" root="http://localhost:8081/content/groups/public"/>
</resolvers>
</ivysettings>
- 未修改的标准安装在URL中有'nexus'!
- 如果您需要部署工件,我认为解决方案是执行与共享解析程序类似的操作(请参阅上面的文档链接),但我还没有尝试过。
- 我更改了您的本地URL以解析为标准的'content / groups / public',这是更好的,因为在上面的maven设置片段中,您通过镜像传递所有呼叫,而不仅仅是中心的呼叫。只需在Nexus UI中添加任何其他存储库,就可以了。您应该没问题。
- 如果你的项目加载了它自己的ivysettings,它不符合默认值,那么这些设置将不会被加载,你再次回到零:(
这就是我的工作方式(@Heron的答案对我不起作用):
使用此内容创建一个文件:
<ivysettings>
<settings defaultResolver="default"/>
<property name="m2-pattern" value="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]" override="false" />
<resolvers>
<chain name="default">
<ibiblio name="public" m2compatible="true" root="http://nexus-server:8081/nexus/content/groups/public"/>
</chain>
</resolvers>
</ivysettings>
从ant build中引用它:
<ivy:settings file="/Users/wdb/.ivy2/ivysettings-public.xml" />
Ivy现在能够从我的nexus存储库中解析依赖关系。
我和Archiva做了同样的事,非常相似。您只需要在新链中声明以下内容:
<chain name="private">
<url name="archiva" m2compatible="true">
<ivy pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/ivy.xml" />
<artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
<artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact].[ext]" />
</url>
</chain>
Archiva管理Maven 2存储库(使用Maven元数据的工件)
通常没有常春藤元数据(ivy.xml)。
Maven 2布局是[组织] / [模块] / [修订] / [工件] - [修订]。[ext]。
我们只需提供以下信息
<url name="archiva" m2compatible="true">
<artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
</chain>
要么
<settings defaultResolver="archiva"/>
<resolvers>
<ibiblio name="archiva" m2compatible="true" root="http://.../archiva/repository/internal/[organization]/[module]/[revision]/[artifact]-[revision].[ext]"/>
</resolvers>