4

我遇到了一个奇怪的问题。我将 Guava 添加到我的 ivy.xml 中,如下所示:

<dependency org="com.google.guava" name="guava" rev="14.0.1" conf="test"/>

当我运行 ant 时,我可以看到它已解决:

[ivy:retrieve]  found com.google.guava#guava;14.0.1 in default

我可以在 ~/.ivy2/cache 中找到该文件。但它没有被复制到我的 lib 目录中。

其他依赖没有问题....有什么建议吗?谢谢。

4

3 回答 3

1

在 ivy.xml 中指定配置映射

我遇到了同样的问题,我一生都无法弄清楚依赖项的下载位置。Ivy 似乎暗示它已被下载,并且缓存中有一些条目,但我的 /lib 中没有出现任何内容。

---------------------------------------------------------------------
|                  |            modules            ||   artifacts   |
|       conf       | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
|      compile     |   2   |   2   |   2   |   0   ||   0   |   0   |
---------------------------------------------------------------------

但是当我看到这个答案时,一切都变了。

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范围)。在实践中,您只会使用其中一个defaultmaster范围(source)。

看:

我的直觉是,仅当您指向 Maven 存储库时才需要这样做。我没有尝试过。

如果您已经这样做了,但它仍然没有下载,也许@javabrett 的回答会有所帮助。

于 2016-05-17T08:34:21.667 回答
0

如果你真的使用了 <ivy:retrieve />,而不仅仅是解析,那可能是因为你需要使用 conf="test->default" ?

于 2013-05-10T23:10:01.007 回答
0

这是由于 Maven 打包类型com.google.guava:guava:14.0.1是 OSGibundle而不是jar. 有一个常春藤错误已解决,但解决方案并不完整。

如果要下载两种包类型,则需要避免指定type="jar"并使用。type="jar,bundle"

另请参阅此问题POM 定义

于 2015-09-25T12:44:29.150 回答