2012-04-10 38 views
4

我想知道是否有一個Hudson/Jenkins插件將庫工件與創建它們的構建聯繫起來?我在查看"remove artifacts from nexus repository"這個問題,並認爲在Jenkins中刪除構建應該也提供了刪除構建創建的構件的選項。是否有一個插件,將詹金斯的構建與Maven(Nexus)構件聯繫起來

我們目前正在運行Jenkins 1.447和Nexus Open Source 1.9.2.3。我們的Jenkins構建使用maven部署目標在我們的Nexus存儲庫中創建工件。我看來,一旦這些工件被部署了,就沒有類似的自動化機制去除它們。我們希望將Jenkins構建綁定到其Nexus構件。我想,如果我們已經決定從Jenkins中刪除構建,我們沒有用於構建,因此也不需要爲構建存儲構件。我們希望刪除構建以觸發刪除Nexus構件。

如果沒有可用的東西,我想我可以開始寫東西,但我想檢查並看看其他人如何處理這個。

+0

你想哪種文物刪除嗎? – khmarbaise 2012-04-11 07:17:11

+0

你在說什麼SNAPSHOT或發佈? – khmarbaise 2012-04-11 09:53:02

+0

抱歉,延遲。這些將是發佈。我們根據hudson/jenkins內部版本號對版本進行版本化。正如你可以想象的那樣,隨着時間的推移,這可能會在多模塊應用程序中變得相當大。 – Randolph 2012-04-17 22:25:14

回答

0

您可以使用Nexus的REST API構建您自己的Jenkins插件,爲您完成該作業。您可以使用Nexus自定義元數據插件來存儲Jenkins Build Job編號。一旦構建版本被刪除,您可以讓您的自定義Jenkins插件刪除Nexus中所有構件編號中的構件。我有一個類似的問題,並寫了一個自定義詹金斯插件。看看教程和github上的源代碼。它應該非常簡單。

教程: http://blog.codecentric.de/en/2012/08/tutorial-create-a-jenkins-plugin-to-integrate-jenkins-and-nexus-repository/

源代碼: https://github.com/marcelbirkner/nexus-metadata-plugin/

+0

關於爲什麼以及如何,有很多內容,但這是答案,最終我做了什麼。 – Randolph 2012-11-01 20:35:07

0

您可以通過maven-dependency-plugin從本地存儲庫清除工件。

+0

根據此插件的說明,它將「從本地存儲庫中刪除項目依賴項,並可選擇重新解決它們。」我期待將Nexus中的工件與Jenkins中的構建「同步」。 – Randolph 2012-04-11 08:31:58

+0

在Jenkins中,您可以定義讓Maven使用服務器的存儲庫(Jenkins運行時的用戶)或本地基於可以基於您使用的Maven插件配置的構建。同步由您的構建完成。所以我不明白你真正想要達到什麼。 – khmarbaise 2012-04-18 07:11:18

+0

我已經更新了我的問題,希望更清楚一點。也許有一些你說的我缺少的設置? – Randolph 2012-04-18 18:53:21

0

如果你有一個版本,根據編譯服務器的編號對它進行編號是沒有意義的。通常的用例就是使用SNAPSHOT來達到這個目的。此外,通常的用例是從Nexus一段時間後根據計劃任務刪除SNAPSHOT,但發佈永遠不會從Nexus中刪除。

0

由於您知道發佈的名稱,因此您可以構建自定義作業或觸發器以使用wget命令從聯繫存儲庫中刪除工件。

作爲Nexus中的正確用戶,您可以刪除發佈工件,而不僅僅是SNAPSHOTS。