首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在删除Maven -元数据-local.xml文件之前,maven 3依赖项解析失败[maven-调用-plugin相关]

在删除Maven -元数据-local.xml文件之前,maven 3依赖项解析失败[maven-调用-plugin相关]
EN

Stack Overflow用户
提问于 2011-05-06 20:36:39
回答 3查看 6.4K关注 0票数 7

在我的一个Maven项目中,依赖项解析将成功一次,然后在以后的构建尝试中失败:

代码语言:javascript
复制
[WARNING] The POM for commons-logging:commons-logging:jar:1.1.1 is missing, no dependency information available
[WARNING] The POM for commons-httpclient:commons-httpclient:jar:3.1 is missing, no dependency information available
[WARNING] The POM for javax.mail:mail:jar:1.4.4 is missing, no dependency information available

…依此类推,直到我删除与失败工件相对应的maven-metadata-local.xml文件(例如,~/.m2/repository/commons-logging/commons-logging/maven-metadata-local.xml)。删除这些文件后,下一次mvn调用将正常进行;元数据文件将通过该调用恢复(可能是检查我的上游存储库/镜像以获取更新的工件的过程的一部分),在再次删除元数据文件之前,将再次向我展示上述错误。

这会影响多个项目,尽管它似乎仅限于一组特定的依赖项。我想我可以去核能和吹走我当地的回购,但我想了解问题是什么。

有什么想法?

更新:看起来是生成这些maven-metadata-local.xml文件的maven调用程序插件 (这些构建用于通用集成测试)。我不是只使用集成测试的本地回购如前所述,仅仅是因为这样做会导致所有传递依赖项(除非您想要维护一个特定于集成的settings.xml文件!)的重新下载。我以这种方式使用了invoker插件和许多其他项目,取得了很好的效果--当然,在这样的过程中,从来没有遇到过嵌入的本地存储库。

更新2 OK,这是可重复的,即使从一个全新的本地存储库开始。这是在OS上,Java 3.0.3的1.6.0_24上;请注意,Maven 2.2.1是否而不是显示了这个问题。

下面是一个有问题的项目:1.3.0-搜查的比较支部。复制:

代码语言:javascript
复制
> mvn clean test
# no error -- can run this and other builds that don't involve maven-invoker-plugin all day w/o problems
> mvn clean integration-test
# FAIL: "Could not resolve dependencies", with warnings as noted above
> mvn clean test
# FAIL: "Could not resolve dependencies", with warnings as noted above

一旦本地存储库被保存(通过生成maven-metadata-local.xml文件,AFAICT),任何构建都不会超过依赖解决阶段。

运行mvn -X会对以后显然找不到的每一个工件显示这样的行:

代码语言:javascript
复制
[DEBUG] Verifying availability of /Users/chas/.m2/repository/javax/mail/mail/1.4.4/mail-1.4.4.jar from []

当然,/Users/chas/.m2/repository/javax/mail/mail/1.4.4/mail-1.4.4.jar等人。确实存在,/Users/chas/.m2/repository/javax/mail/mail/1.4.4/mail-1.4.4.pom也存在。完全不明白。此时,我假设这是Maven 3(或一些底层库)中的一个bug,现在我看到了2.2.1是干净的。

更新3 向Maven项目提交的Bug报告.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-18 11:40:30

这个问题在Ether1.12中得到了解决,这是Maven 3.0.3附带的Ethere1.11库之上的一个rev。在一个人的Maven安装中用1.12代替乙醚1.11会导致预期行为(正如我在错误文件中所指出的)。这里希望Maven 3.0.4能尽快与乙醚1.12一起发布。:-)

票数 5
EN

Stack Overflow用户

发布于 2011-05-06 21:52:44

您没有提到您可能尝试过的内容,所以您可能没有尝试这一项:添加-U选项强制更新吗?(也许这个-U选项只适用于快照.)

票数 0
EN

Stack Overflow用户

发布于 2011-05-07 21:46:34

在我的本地存储库中,我也看到过由损坏的文件引起的类似错误。例如,如果下载过程中某个下载失败,或者在我下载后远程存储库中的一个文件发生了更改。删除~/.m2下受影响的目录修复了它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5916738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档