0

我们向 Artifactory 部署一个具有 [filename] 名称的工件,该名称由 Artifactory 应用到它的时间戳。稍后在不同的主干中,它的构建尝试使用之前部署的相同名称下载该工件。但是,由于 Artifactory 应用于文件名的时间戳,此后续构建失败并出现“无法从任何存储库下载工件”错误。除了转Artifactory时间戳之外,有没有解决这个问题的方法?我们的信念是 Artifactory 会足够聪明,至少知道在请求时返回最新的时间戳工件。

4

2 回答 2

0

在我将存储库配置从存储非唯一快照更改为唯一快照后,我最近遇到了类似的问题。(见这里

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

例如,在存储库中,如果文件夹下/com/mycompany/test/foo/1.0.0-SNAPSHOT/foo-1.0.0-SNAPSHOT.pomand foo-1.0.0-20130329-231102-1.pom,则下载 com.mycompany.test:foo:1.0.0-SNAPSHOT:pom 会出错。您必须删除名称中带有 SNAPSHOT 的文件或名称中带有时间戳的所有文件。

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

于 2013-03-29T15:27:08.113 回答
0

通常这将是一个评论,但由于我缺乏对此的代表,我这样做是为了回答:肯定 Artifactory 应该能够处理这个问题。为什么你认为时间戳是问题所在?这对于快照是正常的,并且 maven-metadata.xml 应该指出哪个是最后一个版本。

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

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

我说得对吗:您描述的要在其(自己的)构建中部署到 Artifactory 的工件想要使用自己?你能发布你的POM的相关部分吗?

于 2011-02-14T14:57:44.407 回答