【发布时间】:2017-10-13 02:50:50
【问题描述】:
我遇到了一个奇怪的问题:
我使用“mvn deploy”(Maven 3.3.9、Jenkins 2.45、Nexus 2.12.0)将快照 jar 部署到我在 jenkins 中的 nexus,结果如下(假设 jar 名称为 userdao.jar):
Uploaded: myNexusIp/nexus/content/repositories/snapshots/xxx/1.0-SNAPSHOT/userdao-1.0-20170512.111840-6.jar
Uploaded: myNexusIp/nexus/content/repositories/snapshots/xxx/1.0-SNAPSHOT/maven-metadata.xml
构建成功,一切正常。
但是当我构建另一个依赖于userdao.jar的maven项目时,出现如下错误:
Could not find artifact userdao:jar:1.0-20170512.111840-6 in public (http://myNexusIp/nexus/content/groups/public/)
定位后发现nexus中maven-metadata.xml的时间戳比实际jar的时间戳多一秒!
如下:
- 在
maven-metadata.xml: 1.0-20170512.111840-6 - 实际存在的快照jar:userdao-1.0-20170512.111839-6.jar
因为userdao-1.0-20170512.111840-6.jar 在 Nexus 中不存在,所以
正确的应该是userdao-1.0-20170512.111839-6.jar,所以会出错。
谁能告诉我为什么以及如何解决?
【问题讨论】:
-
您是否检查过您的日志文件,userdao-.. 在您的整个构建中仅上传一次...
-
你好khmarbaise,谢谢你的提醒,我发现jenkins build log中userdao.jar的maven-metadata.xml总是更新2次。并且如果 2 次更新在一秒钟内没有错误,一旦 2 次更新在不同的秒内(例如,一个是 111839,另一个是 111840),就会发生错误。
-
嗨 khmarbaise,为什么上传文件执行了两次,我该如何解决?
-
您好,您是如何构建 jar 名称的,请您添加您的 pom 我正在经历同样的问题,这可能对 @IcyLemon 有帮助
标签: maven jenkins nexus maven-metadata