我们最近发现了一个错误,该错误使Maven尝试检索不存在的SNAPSHOT。如您所见,内部版本号(无论是什么,因为它不是我们的内部版本号)都匹配,但是时间戳不匹配,从而导致构建失败。这种情况每说20次就会发生一次。
这是在Nexus中:
这是在构建过程中发生的情况:
如您所见,它尝试检索不存在的relations-models:jar:1.1-20170901.134955-278
,而20170901.134954-278
可以。注意一秒钟的偏移量。
这涉及一个(大型)多模块项目,这是子模块之一。
Jar插件的配置如下
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>me.magnet.redirect.RedirectService</mainClass> <useUniqueVersions>false</useUniqueVersions> <classpathLayoutType>custom</classpathLayoutType <customClasspathLayout>$${artifact.artifactId}-$${artifact.baseVersion}.$${artifact.extension}</customClasspathLayout> </manifest> </archive> </configuration></plugin>
部署插件是这样的:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> <configuration> <uniqueVersion>false</uniqueVersion> <deployAtEnd>true</deployAtEnd> </configuration></plugin>
该构建也并行运行。
最佳答案
Maven将尝试下载存储库中maven-metadata.xml
文件中列出的最新快照版本。
听起来您在maven-metadata.xml
中列出了此版本,但实际上该文件不存在。这可能是,也可能是,原因是上传的构建不完整;如果例如多个模块试图使用完全相同的spanshot版本号,但是其中一些模块无法编译,因此没有上传到仓库。 (同样,可能是不正确的Maven pom.xml
配置)
关于maven - 我可以将快照的时间戳更改为内部版本号吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46079475/