2011-04-26 254 views
1

我的Maven构建发出一些相关信息如下:无法找到任何存储库的资源“com.ibm.icu:icu4j:pom:3.4.1”

[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

在文件夹中您是否看到过pom?如果JAR存在但不存在,它可能会成功。 – 2011-04-26 20:15:20

+0

@John V.存在jar和pom。此外,我删除了这个文件夹并重建,问题依然存在。 – ripper234 2011-04-26 20:26:51

+0

嗯,你有没有试过它运行调试?这是奇怪的,他们都存在,它仍然在寻找pom – 2011-04-26 20:34:33

回答

0

构建并最终获得成功,但 而不用下载ICU4J

从它看起来像行家的消息欲从com.springsource.repository.bundles.release从先下载3.4.1版本icu4j依赖,然后com.springsource.repository.bundles.externa升最后central(默认)。

存储库中没有3.4.1版本的icu4j。项目或项目中的依赖项已将此版本指定为依赖项。因此,Maven会在每次构建时尝试下载它。

事实证明,项目依赖3.4.4版本的icu4j,它被成功下载。 Maven使用此版本(按照依赖关系解析规则),因此构建成功。

运行mvn dependency:tree应提供谁使用哪个版本的icu4j并作出适当更改的详细信息。

+0

不,当我做N次“mvn编译”时,它总是打印这些消息。我只作为分析步骤删除了一次回购。 – ripper234 2011-04-27 06:39:00

+0

@ ripper234。我被误导成相信3.4.1版本的icu4j从中央仓库下载。我猜INFO消息不完整。鉴于此,我已经更新了答案。 – Raghuram 2011-04-27 07:15:36