2016-06-17 170 views
1

我們有一個方案可以將從Maven構建生成的構件部署到Nexus。詹金斯的工作將運行目標clean package。如果pom.xml具有SNAPSHOT版本,則工件應該轉到SNAPSHOT repo。如果pom.xml具有發行版本,那麼該工件應該發佈回購。任何想法我們如何使用Deploy to Maven Repository插件來實現這一點。截至目前,我在Execute Shell中使用下面的腳本。Jenkins使用部署到Maven存儲庫將構件部署到Nexus

#!/bin/bash 
var1=$1 
var2="SNAPSHOT" 
if [[ $(echo "$var1"|grep -i "$var2" | wc -l | tr -d ' ') -gt 0 ]]; then 
    exit 1 
else 
    exit 0 
fi 

在靈活發佈帖子構建操作中,我使用了Execute Shell條件操作。根據腳本的結果,我會執行部署到Maven存儲庫後構建操作。這隻能幫助部署釋放回購。任何更好的做法。

回答

2

我相信這個功能是內置到Maven本身;您可以在<distrobutionManagement>區塊中指定不同的<repository><snapshotRepository>。 (見docs

+0

我們有1000個以上的作業從1000個git回購。這種方法需要所有1000個項目來更新pom.xml儀式? – Upen

+0

是的,除非它們共享共同的根目錄,您可以在其中定義常用配置。 –

+0

其中大多數是舊版應用程序。有沒有其他的選擇? – Upen

2

我認爲,如果你不能更新資料庫POM文件,你有兩個選擇:

  1. 有一個Maven Project plugin,它允許你添加新的生成後行動Deploy artifacts to Maven repository。它允許您設置存儲庫URL和名稱以及其他幾個選項。將snapshot策略設置爲目標存儲庫會導致成功上傳快照工件。需要注意的是
    • 步驟僅當構建類型是,如果你嘗試上傳發布神器
  2. 如果添加一個插件是Maven build(2/3)
  3. 上傳將Bad request錯誤失敗不是一個選項,你可以使用骯髒的黑客文件並通過類似sed的方式更改pom文件作爲第一個構建步驟。這是有風險的,不應該被使用,如果不是絕對不可避免的。

要更新所有建立在一次我建議可以選用一些插件(Configuration Slicing plugin作爲一個選項),或直接改變​​3210文件通過從CLI腳本,然後在詹金斯用「加載配置」。

相關問題