Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包

Jenkins Pipeline 流水线

步骤

拉取SVN代码 -> Maven 构建 -> Docker 编译 -> 发布至阿里云仓库 -> K8S 更新

Jenkins插件安装

  • Localization: Chinese (Simplified)
  • Subversion 【2.16.0】 --从SVN中获取代码
  • Maven Integration 【3.20】 -- 编译项目
  • Docker plugin 【1.2.10】 -- 用于节点管事中的 Docker 维护
  • docker-build-step 【2.8】 -- 用于 Post Steps 的时候,选择 Build/Publish Docker Image
  • SSH 【6.1】-- 用于集成 K8S,远程执行K8S服务器上的命令

拉取SVN代码

流水线语法生成
image
选择 Subversion 生成流水线脚本
image
image
image
image
构建
image
image

编译构建代码

  1. 找到 Maven 的名字
    image
    image
    image
    image
    image
Cannot run program "nohup" (in directory "D:\ProgramData\Jenkins\.jenkins\workspace\PipelineDemo"): 
CreateProcess error=2, 系统找不到指定的文件。

解决方法:因为我这边是 Windows 上装的 Jenkins 所以,sh 要换成 bat
image
image
修改打包命令
image
image
image

pipeline {
    agent any

    tools {
        maven 'Maven36'  //添加 Maven 工具
    }
    stages {
        stage('拉取代码') {
            steps {
                checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '凭证ID,如果没设,默认会给 GUID', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'SVN 地址']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])  //该脚本由流水线语法自动生成
                echo '拉取成功'
            }
        }

        stage('执行构建') {
            steps {
                //bat 'mvn --version'
                bat 'mvn clean package -Dmaven.test.skip=true'
                echo '构建完成'
            }
        }
    }
}
posted @ 2022-11-01 14:47  VipSoft  阅读(3107)  评论(0编辑  收藏  举报