我们最近发现了一个错误,该错误使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/

    10-16 16:06