Jenkins构建工具

来自Linux78|wiki
Bob讨论 | 贡献2019年11月14日 (四) 17:24的版本 (Bob移动页面Jenkin构建工具Jenkins构建工具
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

tools指令介绍

tools指令能帮助我们自动下载并安装所指定的构建工具,并将其加入PATH变量中。这样,我们就可以在sh步骤里直接使用了。但在agent none的情况下不会生效。

tools指令默认支持3种工具:JDK、Maven、Gradle。

使用Maven构建

jenkins pipeline 的tools指令默认就是支持Maven。所以,使用Maven只需要两步

  1. 进行Manage Jenkins --> global Tool Configuration --> Maven 页 Maven: name man-3.5.4,这个值下面就用到,“Install from Apache”下的version可以选择Maven版本。
  2. 在Jenkinsfiles中指定Maven版本,并使用mvn命令

pipeline {

   agent any
   tools {
       maven 'mvn-3.5.4'
   }
   stages {
       stage('Example') {
           steps {
               sh 'mvn clean test install'
           }
       }
   }

}

这样,当执行到tools指令时,Jenkins会自动下载并安装Maven。将mvn命令加入环境变量中,可以使我们在pipeline中直接执行mvn命令。

使用Managed files设置Maven

Maven默认使用的是其官方仓库,国内下载速度很慢。所以,我们通常会使用国内的Maven镜像仓库。这时就需要修改 Maven 的配置文件 settings.xml。settings.xml 文件的默认路径为${M2 HOME}/conf/settings.xml。但是,我们是不可能登录上Jenkins的机器,然后手动修改这个文件的。

Config File Provider插件(https://plugins.jenkins.io/config-file-provider)能很好地解决这个问题。只需要在Jenkins的界面上填入settings.xml的内容,然后在pipeline中指定settings.xml就可以了。也就是说,对于不同的pipeline,可以使用不同的settings.xml。

具体实现方法如下: (1)安装Config File Provider插件。

(2)进入Manage Jenkins页面,就可以看到多出一个“Managed files”菜单,如图4-5所示。

(3)单击“Managed files”进入,在左侧菜单栏中选择“Add a new Config”,就会看到该插件支持很多种配置文件的格式及方式,

我们看到列表中有多个重复的选项,看来Config File Provider插件2.18版本在Jenkins 2.121.1下有Bug。但是依然可以设置,不会报错。

(4)选择“Global Maven settings.xml”选项。因为我们的设置是全局的。填写“ID”字段,Jenkins pipeline会引用此变量名。假如使用的ID为maven-global-settings。

(5)单击“Submit”按钮提交后,就看到编辑页了。将自定义的Maven settings.xml的内容粘贴到“Content”字段中,单击“Submit”按钮即添加完成。


(6)在Jenkins pipeline中使用的方法如下:

configFileProvider([configFile(fileId: 'maven-global-settings', variable: 'MAVEN_GLOBAL_ENV')]){
   sh "mvn --s $MAVEN_GLOBAL_ENV clean install"
}