【发布时间】:2018-02-15 04:42:10
【问题描述】:
我们最近看到了一个错误,即 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-metadata.xml 是否显示正确的版本?
-
后缀是Maven标准。更改它可能是一个坏主意(如果可能的话)。向我们展示您的 pom,以便我们找出发生这种偏移的原因。
-
这个问题是发生在多模块构建中还是发生在构建时产生工件而另一个构建正在消耗它?这些构建是否并行运行?
-
更新了问题以回答您的问题。
-
我也很确定(但当时忘了检查)
maven-matedata.xml有错误的工件名称。所以我的直觉是,由于并行构建和deployAtEnd配置,它需要一个新的时间戳,而不是使用它已经与maven-matedata.xml通信的时间戳
标签: maven maven-3 nexus maven-deploy-plugin maven-jar-plugin