2013-04-29 72 views
2

当您通过现有工件将Artifact部署到Artifactory时,它不会将其与现有工件具有的生成相关联。Artifactory REST API:如何重新关联具有已部署工件的构建?

例如:如果您使用的詹金斯Artifactory的插件部署三个神器:

example.jar 
example.pom 
example.json 

然后,它会创建一个新的版本,这些文物与构建相关联,并部署文物的位置和回购你指定。

比方说,这个部署buildName“例如,建立”以/libs-release-local/example/1.0/和buildNumber 51

如果你看了看文物,你会看到在构建选项卡上,它与build-info.json相关联。

现在,让我们说你部署example.json使用REST API到同一位置:

PUT /libs-release-local/example/1.0/example.json 

现在,新的神器不与集结info.json相关!

如何部署工件以使其与现有的build-info.json相关联? (在这个例子中,“/ example-build/51”版本)。

不能够做到这一点会引发各种问题(当build_promotion完成,如,它促进只有以前相关文物,并没有什么以后部署。)

回答

8

Artifactory的的Build Info描述与构建关联基于的文物伪影的校验和

如果你看一下这是Build Info描述符的JSON,你就可以看到:

{ 
    ... 
    "modules" : [ { 
     "id" : "org._10ne.gradle:rest-gradle-plugin:0.2.0", 
     "artifacts" : [ { 
      "type" : "pom", 
      "sha1" : "f0dcec6a603aa99f31990e20c0f314749f0e22ca", 
      "md5" : "427dcf49c07cc7be175ea31fd92da44e", 
      "name" : "rest-gradle-plugin-0.2.0.pom" 
     }, 
     .... 
    } 
} 

一个Build Info描述符描述了“构建”,这实质上是模块的单个单元/ s的生产通过一定的过程;这个过程取决于特定的环境。

您正在部署一个新的工件,该工件不是原始工艺的一部分,或者是Build Info描述的环境;如果是的话,它会产生与前一个神器完全相同的校验和

您基本上是,这会损害“构建”单元的完整性。

这样做的“正确”方法是启动新的构建过程并生成有效的Build Info描述符。

+0

创建新版本是正确的做法。谢谢! – David 2014-07-15 20:07:56