2

我正在構建一個在公司內部創建標準化項目的原型。生成的實際項目文件很好,現在我想將原型與建立基礎架構的過程(如Stash存儲庫和Jenkins作業)相集成。在maven原型期間發出HTTP請求:生成

例如,簡單地說,我希望maven archetype:generate進程包含一個HTTP REST POST到http://stash.example.com/rest/api/1.0/projects/LABS/repos/{artifactId}以創建一個GIT repo。

同樣,Jenkins也有類似的工作。如果在創建Maven項目之前,可以對Stash/Jenkins進行一些測試以防止名稱衝突,我會很高興。

我想這個解決方案是綁定一些maven插件到一些構建階段。

我一直無法找到任何現有的插件,或者在原型生成過程中做類似的人(沒有Groovy錘子)的例子。

  1. 是否有任何現有的Maven插件在構建過程中協助製作HTTP/REST請求?
  2. 是否有任何現有的Maven插件可以幫助訪問Stash或Jenkins API?
  3. 哪個Maven階段將成爲檢查遠程系統選定名稱/ ids的好候選者,以及哪些階段將成爲真正創建遠程資源的好候選者?

有沒有人試過這樣的事情,如果是的話,它是如何工作的?

我看到一些相關的問題

還有一些潛在的插件

回答

2

有幾種方法可以做到這一點。有兩種方法,我們這樣做是以前使用:

1.使用Groovy - gmaven插件和RESTClient實現它裏面

我們的代碼是有點複雜,粘貼在這裏,但我們做了一些事情非常類似:

Groovy Rest Invocation Using Maven

2. Antcontrib的loadresource:

示例:

<loadresource property="build_start_date"> 
    <url url="${JOB_URL}/lastSuccessfulBuild/api/xml?xpath=/*/id/text()"/> 
</loadresource> 

此連接到哈德森REST API並獲得就是我存儲在屬性build_start_date最後構建日期。