我有一个Artifactory服务器,用于解析Ivy依赖项。当我想向我的ivy.xml
添加依赖项时,我有时必须添加一个明确的嵌套<artifact>
标记,我不明白为什么。
示例A:
<dependency org="com.google" name="guava" rev="[7,)" conf="compile,runtime" />
示例B
<dependency org="com.twelvemonkeys.common" name="common-image" rev="3.0.1" conf="compile,runtime">
<artifact name="common-image" ext="jar"/>
</dependency>
查看Artifactory树视图中的缓存依赖项,没有任何内容表明最后一个示例需要额外的信息来解决依赖关系,但是Artifactory会自己建议它,并且解决方案没有完成就无法解决。
我正在使用Ivy来对抗Maven布局的存储库。我的设置由Artifactory生成,看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-settings>
<settings defaultResolver="main" />
<resolvers>
<chain name="main">
<ibiblio
name="public"
m2compatible="true"
root="http://example.org/artifactory/remote-repos" />
</chain>
</resolvers>
</ivy-settings>
为什么Artifactory需要为某些Ivy依赖项而不是其他依赖项的显式工件?
编辑20151005:添加了常春藤设置示例
答案 0 :(得分:1)
执行依赖项解析的工具是Ivy客户端而不是Artifactory。
基于依赖性减速,Ivy resolver决定从存储库请求哪个工件(在您的情况下,它是Artifactory)。
artifact功能可以更好地控制您无法控制其常春藤文件的依赖项
如果依赖项没有常春藤文件,它可以指定所需的工件
有关工件功能及其使用时间的更多信息,请参阅Ivy documentation。