我的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结构中某个地方存在冲突的依赖关系。如何解决此冲突?同样,该项目确实可以编译,但是它会尝试在每个版本上下载文件,我希望它可以干净地编译。
最佳答案
构建最终会成功,但是
无需下载icu4j
从该消息看来,maven尝试首先从3.4.1
,然后从icu4j
l,最后是从com.springsource.repository.bundles.release
(默认)下载com.springsource.repository.bundles.externa
依赖版本的central
。
存储库中没有3.4.1
的icu4j
版本。项目或项目中的依赖项已将此版本指定为依赖项。因此,maven会在每次构建时尝试下载它。
实际上,项目依赖于3.4.4
的icu4j
版本,该版本已成功下载。 Maven使用此版本(根据依赖性解析规则),因此构建成功。
运行mvn dependency:tree
应该提供谁使用哪个版本的icu4j的详细信息,并进行适当的更改。