0

我正在使用Jenkins CI(單個管道作業)將不同的文件推送到JFrog Artifactory。如何更新工件構建模塊ID

對於每一個構建,我都將構建信息發佈到Artifactory。但是每個版本都有相同的模塊ID。

例如:在Artifactory的資源庫瀏覽器中選擇任何神器然後去建立標籤,則顯示所有建立的,而不是各自的神器打造信息

所以我想知道如何修改神器模塊ID,而將工件信息發佈到Artifactory

+0

到目前爲止您嘗試過什麼? –

+0

將Artifacts上傳到Artifactory後,我們將獲得構建信息對象。稍後我們會將該構建信息發佈到Artifactory。在這兩個步驟之間,我試圖更新構建信息對象。 –

+0

你怎麼上傳,mvn? gradle? –

回答

0

構建信息和工件存儲對於不同的機制。構建信息只與工件相關聯,因爲您可以定義構建產生的構件以及構件的依賴關係。模塊ID與構建信息無關。模塊ID由存儲工件的存儲庫佈局定義。請參閱jfrog文檔:https://www.jfrog.com/confluence/display/RTF/Repository+Layouts

您無法更改模塊ID。 Artifactory根據存儲庫佈局分配模塊ID。這意味着工件的路徑對於定義模塊ID很重要。 例如版本庫佈局

[org]/[module]/[module] _ [base_rev]。[ext]將模塊ID賦予該模式之後存儲的任何工件,如[org]:[module]:[ base_rev。

構件通過工件上的build.name,build.number屬性和從.json文件發佈構建信息來關聯構建。 .json必須包含一個部分,表示構建產生了哪些工件。

一般來說,聽起來好像您需要確保每個工件正在部署到artifactory中的唯一路徑,同時設置build.name和build.number屬性。另一件要看的是文件散列。它必須在正在發佈的構建信息中匹配。因此,如果文件哈希值不相同,則意味着不會更改以前版本中的工件。

我不知道這會有多大的幫助,但是有很多細微之處可以讓人工製品和建築物排隊。你提到使用Jenkins,你有沒有使用Jenkins Artifactory插件進行研究。雖然我們使用Bamboo,但它應該爲您處理很多這項工作,所以我不太瞭解它的不同之處。

+0

模塊ID由存儲庫佈局定義。似乎它不是真的。因爲我在裏面使用Maven倉庫我有兩個不同的文件夾,一個是Java工件,另一個是一般文件。我爲每個Java工件獲取不同的模塊ID,但不是用於同一存儲庫中的常規文件。 –