我的maven构建发布了如下几个信息:
[INFO] ------------------------------------------------------------------------
Downloading: http://repository.springsource.com/maven/bundles/release/com/ibm/icu/icu4j/3.4.1/icu4j-3.4.1.pom
[INFO] Unable to find resource 'com.ibm.icu:icu4j:pom:3.4.1' in repository com.springsource.repository.bundles.release (http://repository.springsource.com/maven/bundles/release)
Downloading: http://repository.springsource.com/maven/bundles/external/com/ibm/icu/icu4j/3.4.1/icu4j-3.4.1.pom
[INFO] Unable to find resource 'com.ibm.icu:icu4j:pom:3.4.1' in repository com.springsource.repository.bundles.external (http://repository.springsource.com/maven/bundles/external)
Downloading: http://repo1.maven.org/maven2/com/ibm/icu/icu4j/3.4.1/icu4j-3.4.1.pom构建最终会成功,但不会下载icu4j。那么下一次我构建的是完全相同的。
我找到了这个very related question。我不明白的是,如果构建真的找不到资源,它是如何成功的呢?如果它最终找到了它,为什么还要再次下载资源呢?
我确实发现我的.m2文件夹包含一个名为com/ibm/icu/icu4j/3.4.4/的文件夹,所以我推断在pom结构的某个地方存在一个冲突的依赖关系。
我该如何解决这场冲突?同样,该项目确实编译,但是它尝试在每个构建上下载文件,我更希望它能够干净地编译。
发布于 2011-04-27 06:33:59
构建最终成功,但从未下载过icu4j
从消息中可以看出,maven试图首先从3.4.1下载icu4j依赖项的com.springsource.repository.bundles.release版本,然后从com.springsource.repository.bundles.external下载,最后从central下载(默认值)。
存储库中没有3.4.1版本的icu4j。项目或项目中的依赖项已将此版本指定为依赖项。因此,maven每次构建时都会尝试下载它。
反过来,项目依赖于3.4.4版本的icu4j,该版本将被成功下载。Maven使用此版本(根据依赖性解析规则),因此构建成功。
运行mvn dependency:tree时,应该详细说明谁使用了哪个版本的icu4j,并进行了适当的更改。
https://stackoverflow.com/questions/5795864
复制相似问题