我遇到了一个奇怪的问题。我将Guava添加到我的ivy.xml中,如下所示:
<dependency org="com.google.guava" name="guava" rev="14.0.1" conf="test"/>
当我运行蚂蚁时,我可以看到它已经解决了:
[ivy:retrieve] found com.google.guava#guava;14.0.1 in default
我可以在〜/ .ivy2 / cache中找到该文件。但它没有被复制到我的lib目录。
其他依赖项没有问题....有什么建议吗?感谢。
答案 0 :(得分:1)
在ivy.xml中指定配置映射
我遇到了同样的问题,并且在我的生活中无法确定下载依赖项的位置。 Ivy似乎暗示它已被下载,并且缓存中有一些条目,但我的/ lib中没有出现任何内容。
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| compile | 2 | 2 | 2 | 0 || 0 | 0 |
---------------------------------------------------------------------
但是当我看到answer时,一切都改变了。
在ivy.xml
中,您必须指定配置映射conf="myconfig->default"
,密钥为->default
<configurations>
<conf name="myconfig" description="Required for JSF"/>
</configurations>
<dependencies>
<dependency conf="myconfig->default" name="jsf-api" org="com.sun.faces" rev="2.2.13"/>
</dependencies>
这会将您的用户定义配置映射到Maven范围(确切地说,default
范围)。实际上,您只能使用default
或master
范围(source)。
请参阅:
default
以外的maven范围:https://stackoverflow.com/a/7116577/4212710 我的直觉是,只有在指向Maven存储库时才需要这样做。我没有尝试过。
如果您已经完成此操作但仍然无法下载,或许@ javabrett的answer可以提供帮助。
答案 1 :(得分:0)
如果你真的使用了&lt; ivy:retrieve /&gt;,而不仅仅是解决,那么可能是因为你需要使用conf =“test-&gt; default”?
答案 2 :(得分:0)
这是由com.google.guava:guava:14.0.1
作为OSGi bundle
而不是jar
的Maven打包类型引起的。有Ivy bug for this已解决,但解决方案尚未完成。
如果要下载两种包类型,则需要避免指定type="jar"
,而是使用type="jar,bundle"
。