cem*_*ick 7 integration-testing maven-3 maven
在我的一个Maven项目中,依赖项解析将成功一次,然后失败以便以后的构建尝试:
[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
Run Code Online (Sandbox Code Playgroud)
...等等,直到我删除maven-metadata-local.xml与失败的工件相对应的文件(例如~/.m2/repository/commons-logging/commons-logging/maven-metadata-local.xml).删除这些文件后,下一次mvn调用将正常进行; 元数据文件由该调用恢复(可能是检查我的上游存储库/镜像更新工件的过程的一部分),我再次提出上述错误,直到我再次删除元数据文件.
这会影响多个项目,但它似乎仅限于一组特定的依赖项.我想我可以去核并吹掉我当地的回购,但我想知道问题是什么.
思考?
更新:看起来它是生成这些文件的maven-invoker-plugin(这些构建用于通用集成测试)maven-metadata-local.xml.我没有使用此处所述的仅集成测试本地存储库,只是因为这样做会导致重新下载所有传递依赖项(除非您想维护特定于集成的settings.xml文件!!!).我已经以这种方式将invoker插件与各种其他项目一起使用,效果很好 - 当然在这样的过程中从未遇到过楔形本地存储库.
更新2确定,这是可重复的,即使在从一个完全新鲜的本地存储库开始之后也是如此.这是在OS X,Java 1.6.0_24和Maven 3.0.3; 注意,Maven的2.2.1不会不出现此问题.
这是有问题的项目之一:翻译的1.3.0-compat分支.重现:
> 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
Run Code Online (Sandbox Code Playgroud)
一旦本地存储库被borked(通过生成maven-metadata-local.xml文件,AFAICT),没有构建将通过依赖项解析阶段.
mvn -X对于后来显然未找到的每个工件,Running会显示这样的行:
[DEBUG] Verifying availability of /Users/chas/.m2/repository/javax/mail/mail/1.4.4/mail-1.4.4.jar from []
Run Code Online (Sandbox Code Playgroud)
当然,/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(或一些底层库)中的一个错误,现在我看到2.2.1是干净的.
更新3 Maven项目提交的错误报告.
此问题在以太网1.12中解决,比Maven 3.0.3附带的以太1.11库高出一个转速.在一个人的Maven安装中用1.12替换以太1.11会导致预期的行为(如我提交的错误中所述).这里希望Maven 3.0.4能够尽快发布以太网1.12.:-)
| 归档时间: |
|
| 查看次数: |
5535 次 |
| 最近记录: |