我的ivysettings.xml
中的网址解析器定义如下:
<url name="repo">
<ivy pattern="http://repo.example.com/repo/[organization]/[module]/
1.0-SNAPSHOT/[artifact]-[revision]-ivy.xml" />
<artifact pattern="http://repo.example.com/repo/[organization]/[module]/
1.0-SNAPSHOT/[artifact]-[revision](-[classifier]).[ext]"/>
</url>
我的存储库中有两个文件:
http://repo.example.com/repo/myorg/mymodule/1.0-SNAPSHOT/mymodule-1.0.0-ivy.xml http://repo.example.com/repo/myorg/mymodule/1.0-SNAPSHOT/mymodule-1.0.0.jar
当我解决时,Ivy似乎没有找到我的描述符。我尝试使用详细标志运行并看到此条目:
尝试http://repo.example.com/repo/myorg/mymodule/1.0-SNAPSHOT/ivy-[revision]-ivy.xml
这与我的期望不符。为什么要查找带有ivy-
前缀的描述符,而不是我在解析器中指定的描述符?我本来希望日志说它正在寻找http://repo.example.com/repo/myorg/mymodule/1.0-SNAPSHOT/mymodule-[revision]-ivy.xml。
答案 0 :(得分:0)
我找到了答案elsewhere on StackOverflow:
Ivy首先解析
<ivy pattern... />
,其中包含组织,模块和修订,以及[artifact]
硬编码为&#34; ivy&#34;并且[ext]
硬编码为&#34; xml&#34;。
看起来Ivy想要强制ivy-[revision].xml
命名约定。尝试使用http://repo.example.com/repo/[organization]/[module]/1.0-SNAPSHOT/[module]-[revision]-[artifact].xml
之类的模式绕过它会抛出NullPointerException
。