我可以将快照的时间戳更改为内部版本号吗?

时间:2017-09-06 15:46:57

标签: maven maven-3 nexus maven-deploy-plugin maven-jar-plugin

我们最近看到一个错误,Maven试图检索一个不存在的SNAPSHOT。正如您所看到的那样,构建号(无论是什么,因为它不是我们的构建号)匹配,但时间戳不匹配,导致构建失败。每次说20次构建都会发生一次。

这是在Nexus中: In nexus

这就是构建期间发生的事情:

Articats not found

正如您所见,它会尝试检索不存在的relations-models:jar:1.1-20170901.134955-278,而20170901.134954-278则会检索。注意一秒的偏移量。

  1. 还有其他人有这个问题吗?还有一个解决方法吗?
  2. 我正在考虑用内部版本号替换时间戳,但我找不到影响快照后缀的方法。有谁知道怎么做?
  3. 这涉及(大)多模块项目,其中这是子模块之一。

    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>

    构建也是并行运行的。

1 个答案:

答案 0 :(得分:1)

Maven将尝试下载存储库中maven-metadata.xml文件中列出的最新快照版本。

听起来你在maven-metadata.xml中列出了这个版本,但文件实际上并不存在。这可能可能是由于上传的构建不完整;如果是多个模块正在尝试使用完全相同的spanshot版本号,但其中一些未能编译并且未上载到repo。 (也可能是不正确的maven pom.xml配置)