簡介
jenkins 共享庫就是把一些公共的方法類定義在同一的一個倉庫中,供給所有的pipeline 的項目使用,實際采用的就是groovy 的語法創建的
共享庫結構

共享庫中的類的編寫示例src/org/*/*.groovy
vi tools.groovy
package org.foo //必備格式,類似於java 的一種目錄格式的包路徑引用 //定義一個顏色輸出的方法,供所有jenkinsfile 調用 def PrintMes(value,color){ colors = ['red' : "\033[40;31m >>>>>>>>>>>${value}<<<<<<<<<<< \033[0m", 'blue' : "\033[47;34m ${value} \033[0m", 'green' : "^[[1;32m>>>>>>>>>>${value}>>>>>>>>>>^[[m", 'green1' : "\033[40;32m >>>>>>>>>>>${value}<<<<<<<<<<< \033[0m" ] ansiColor('xterm') { println(colors[color]) } }
//此文件就是一個類,里面可以定義好多個方法不止上面一個
共享庫中變量的編寫vars/*.grooy
vi echo.groovy
def hello(){
prinln("hello world")
}
jenkins配置共享庫調用
Jenkins>>Manage Jenkins>>Config System 找到以下配置區域進行配置

jenkinsfile 調用共享庫中的類和變量
#!groovy @Library('jenkinsShareLibrary') _ //引入共享庫 def Tools = new org.pub.tools() //共享庫中的類tools 引入
pipeline {
stages{
steps{
script{ //注意引入的共享庫類必須在script{}里面使用,不能單獨使用
Tools.PrintMes("out put message","green") //使用里面的方法PrintMes() 進行顏色輸出
echo() //對於共享庫中vars目錄下的腳本文件,直接使用就可以執行里面定義的語法。
}
}
}
}
共享庫中方法中的變量
如果共享庫中方法中有許多變量需要在引用方法的時候傳入相應參數,為了方便可以在共享庫中變量使用env.xxx 形似,所謂env就是全局變量可以引入jenkins 中的構建參數,例如共享庫中使用了env.name ,那么jenkins參數構建的時候定義一個name 的參數即可。
另一種避免直接傳入參數的方法是通過配置文件方式。在各個項目中引入一個yaml 文件,里面以key:value 形式定義一些構建發版時需要的變量,共享庫中的var 目錄下面定義一個函數去讀取此文件,然后再共享庫的公共類方法中引用此yaml 中的變量參數。
