2015-10-03 174 views
0

我有一個共同的詹金斯工作流,看起來像覆蓋詹金斯工作流程

def build() { 
    echo "build" 
} 

def test() { 
    echo "test" 
} 

def runAll() { 
    build() 
    test() 
} 

return this; 

用戶代碼:

node { 
    def flow = load(...) 
    flow.runAll() 
} 

有什麼辦法來覆蓋流方法,無需重新實現使用它的呢?像

flow.metaClass.build = { -> echo "Custom build" } 

回答

0

當你不使用load步的東西,你可能只是通過定義他們更換自定義函數,階躍函數。 (原始步驟可以作爲steps.build等可以訪問)

我還沒有專門測試在load ed腳本所定義的覆蓋函數的情況下,但是,如果它不工作已經和我想你發現它確實不是因爲你問這個問題,對嗎? - 我懷疑你只需要像這樣限定它:this.build()