我的maven build会发出如下几个INFO:
[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结构中某处有一个冲突的依赖。
如何解决此冲突?同样,该项目确实编译,但它尝试在每个构建上下载文件,我宁愿让它干净地编译。
答案 0 :(得分:0)
构建最终会成功,但是 没有下载icu4j
在消息中,maven似乎首先从3.4.1
下载icu4j
版本的com.springsource.repository.bundles.release
依赖项,然后com.springsource.repository.bundles.externa
l,最后从central
下载(默认)。
存储库中没有3.4.1
版本的icu4j
。项目或项目中的依赖项已将此版本指定为依赖项。因此,maven每次构建时都会尝试下载它。
随着转向,3.4.4
icu4j
版本的mvn dependency:tree
版本会成功下载。 Maven使用此版本(根据依赖项解析规则),因此构建成功。
运行{{1}}应该详细说明谁使用了哪个版本的icu4j并进行了适当的更改。