我的理解是<ivy:resolve/>
将配置的repo中的依赖项复制到本地Ivy缓存中(以${USER_HOME}/.ivy2
为根)。但在查看task's docs后,我惊讶地发现没有resolver
属性,例如:
<ivy:resolve file="ivy.xml" conf="compile" resolver="theResolverToUse"/>
所以我问:如何指定使用哪个解析器,特别是如果(在ivysettings.xml
中),您可以定义1个解析器?提前谢谢。
更新:
例如,这是我(新兴)ivysettings.xml
中定义的解析器的片段:
<resolvers>
<chain name="chainResolver" returnFirst="true">
<url name="urlResolver">
<ivy pattern="${ivyRepoRoot}/module_descriptors/${ivyModDescriptorPattern}"/>
<artifact pattern="${ivyRepoRoot}/artifacts/${ivyArtifactPattern}"/>
</url>
<filesystem name="localFileResolver">
<artifact pattern="${user.home}/.ivy2/local-cache/[artifact]-[revision].[ext]"/>
</filesystem>
</chain>
<sftp name="publisherResolver" user="fizz" userPassword="buzz" host="example.com">
<ivy pattern="sftp://example.com:22/usr/local/apache/htdocs/ivy/module_descriptors/${ivyModDescriptorPattern}"/>
<artifact pattern="sftp://example.com:22/usr/local/apache/htdocs/ivy/artifacts/${ivyArtifactPattern}"/>
</sftp>
</resolvers>
答案 0 :(得分:2)
在Ivy中,解析器及其关系,优先级和链是与解决任务分开定义的。
多个旋转变压器可以链接在一起,在链式旋转变压器中,要特别注意链中的第一个旋转变压器和“先找到”的概念。
如果正确配置了旋转变压器和/或链,则不必选择要使用的旋转变压器。当解析器在不同环境中具有不同的行为时,这非常方便。
答案 1 :(得分:0)
Chain resolvers非常方便,但如果您想要更多控制权,我建议您使用modules部分,如以下答案中所述: