2010-11-04 49 views
0

我们向Artifactory部署了一个具有[文件名]名称的工件,该工件获得Artifactory对其应用的时间戳。稍后在不同的主干中,其构建尝试使用之前部署的相同名称下载该构件。但是,由于Artifactory应用于文件名的时间戳,此后续生成失败,并显示“无法从任何存储库下载工件”错误。除了转换Artifactory时间戳之外,是否有解决此问题的方法?我们的信念是Artifactory足够聪明,至少可以在需要时返回最新的带时间戳的神器。为什么不能Artifactory下载请求神器?

+0

它是'SNAPSHOT'神器(即与一个版本'xxx-SNAPSHOT')? – romaintaz 2010-11-04 16:58:44

+0

是的。这绝对是一个快照场景。运行在不同版本中的请求者下载器需要最新的快照,但无法获取它,因为它不知道时间戳名称。 – 2010-11-04 17:04:53

+0

我有类似的问题与maven 3和nexus存储库。你设法解决这个问题吗? – 2012-03-28 12:09:49

回答

0

通常这将是一个评论,但由于我缺乏这个代表我做这个回答: 确实Artifactory应该能够处理这个。你为什么认为时间戳是问题?快照和f.e.这是正常的。 maven-metadata.xml应指出哪个是最后一个版本。

您是否使用工件的版本范围?

其构建尝试使用与之前部署的相同名称来下载该构件。

我是否正确地告诉您:您描述的部署Artifactory在其(自己)构建中的工件是否想要使用它自己?你能发布你的POM的相关部分吗?

0

我在将存储配置从存储非唯一快照更改为唯一快照后最近遇到类似问题。 (请参阅here

当存在相同版本的工件的唯一快照和非唯一快照时,将会出现下载问题。

例如,在一个库中,如果文件夹下的/com/mycompany/test/foo/1.0.0-SNAPSHOT/foo-1.0.0-SNAPSHOT.pomfoo-1.0.0-20130329-231102-1.pom,然后下载com.mycompany.test:FOO:1.0.0-快照:POM会得到错误。您必须删除名称中带有SNAPSHOT的文件或带有时间戳名称的所有文件。

对我而言,我的存储库从存储非唯一快照切换到唯一快照,所以我应该删除* -SNAPSHOT文件。我编写了一个Ruby脚本来扫描所有最近部署的工件,并尝试删除相同版本的非唯一快照(-SNAPSHOT)文件(如果有)。它使用Artifactory的REST API。这是来源:https://gist.github.com/aleung/5260512

相关问题