我的 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结构。
如何解决此冲突?同样,该项目确实进行了编译,但它尝试在每次构建时下载文件,我宁愿让它干净地编译。
最佳答案
The build does eventually succeed, but without ever downloading icu4j
从消息来看,maven 尝试首先从 com.springsource.repository.bundles.release< 下载
,然后是 icu4j
依赖项的 3.4.1
版本com.springsource.repository.bundles.externa
l,最后来自 central
(默认)。
存储库中没有 icu4j
的 3.4.1
版本。项目或项目中的依赖项已指定此版本作为依赖项。因此,maven 在每次构建时都会尝试下载它。
事实证明,项目依赖于 icu4j
的 3.4.4
版本,该版本已成功下载。 Maven 使用此版本(根据依赖关系解析规则),因此构建成功。
运行mvn dependency:tree
应该给出谁使用哪个版本的icu4j的详细信息并进行适当的更改。
关于java - 无法在任何存储库中找到资源 'com.ibm.icu:icu4j:pom:3.4.1',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5795864/