码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Jenkins学习笔记


    文章目录

      • Jenkins构建项目的几种方式
      • Jenkins简单的PipeLine流水线脚本
      • Jenkins项目构建细节(定时构建、参数化构建等)
      • Jenkins远程部署Jar包(非流水线方式)
        • 安装Publish Over SSH 插件
        • 配置Publish Over SSH
        • 项目构建配置
      • Jenkins远程部署Jar包(流水线方式)

    Jenkins构建项目的几种方式

    参考简书很有用的一篇文章

    Jenkins简单的PipeLine流水线脚本

    Windows:

    pipeline {
    	agent any
    	stages {
    		stage('Pull code') {
    			steps {
    				checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '4f77bfb0-49cc-4359-9b4a-99b190e5c92b', url: 'https://gitee.com/chuenhung/export-java-bean.git']]])
    			}
    		}
    		stage('Build project') {
    			steps {
    				bat "mvn clean package"
    				archiveArtifacts '**/target/*.jar'
    			}
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    Linux:

    把bat改为sh
    
    • 1

    注意:pipeline、stages、stage、steps、checkout…这些词不能改

    构建遇到问题:java.lang.NoSuchMethodError: No such DSL method ‘pipeline’ found among steps [bat, build, checkout, container, containerLog, input, junit, library, libraryResource, load, milestone, node, parallel, podTemplate, powershell, properties
    解决方法:成功安装PipeLine插件。

    Jenkins项目构建细节(定时构建、参数化构建等)

    参考链接

    Jenkins远程部署Jar包(非流水线方式)

    安装Publish Over SSH 插件

    在这里插入图片描述

    配置Publish Over SSH

    点击Manage Jenkins->Configure System
    在这里插入图片描述
    找到Publish over SSH->修改用户密码
    在这里插入图片描述
    在这里插入图片描述

    填写服务名、服务器ip、用户名、服务器文件夹等信息
    !
    填写完成后,点击Test Configuration 返回Success说明配置没问题。

    项目构建配置

    在对应构建的项目配置中(非PipeLine),Post Steps选择Send files or execute commands over SSH
    在这里插入图片描述
    填写下面的配置:
    其中,Remote directory是在之前的 Publish over SSH配置追加。比如之前配置了/usr/local/testJenkins/,这里填写/test/upload,最终上传的路径就会变成/usr/local/testJenkins/test/upload
    在这里插入图片描述
    最后,重新构建,看日志等着构建成功就好。这里传输如果文件过大速度会比较慢。
    参考链接1、参考链接2

    Jenkins远程部署Jar包(流水线方式)

    测试通过的脚本如下:

    def CONFIG_NAME = "LocalCentos" // SSH Server配置的名字
    def SOURCE_FILES = "**/target/*.jar"
    def REMOTE_DIRECTORY = "" //追加SSH Server配置的目录
    def REMOVE_PREFIX = "/target"
    
    pipeline {
    	agent any
    	stages {
    		stage('Pull code') {
    			steps {
    				checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '4f77bfb0-49cc-4359-9b4a-99b190e5c92b', url: 'https://gitee.com/chuenhung/export-java-bean.git']]])
    			}
    		}
    		stage('Build project') {
    			steps {
    				bat "mvn clean package"
    				archiveArtifacts '**/target/*.jar'
    			}
    		}
    		stage('Deploy project') {
    			steps {
    				sshPublisher(
    					failOnError: false,
    					publishers: [
    						sshPublisherDesc(
    							configName: "${CONFIG_NAME}",
    							transfers: [
    								sshTransfer(
    									sourceFiles: "${SOURCE_FILES}",
    									remoteDirectory: "${REMOTE_DIRECTORY}",
    									removePrefix: "",
    									flatten: true,
    									execCommand: "",//上传后执行的脚本
    									execTimeout: 1800000//执行脚本超时时间
    								)
    							],
    							sshRetry: [
    								retries: 0  //重试次数
    							]
    						   )
    						]
    					)
    			}
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    参考链接

  • 相关阅读:
    【分布式缓存】关于 Memcached 的几个常见问题
    SpringBoot+Vue+Element-UI实现学生综合成绩测评系统
    Neo4J安装
    Angular知识点系列(4)-每天10个小知识
    Python期末复习题:文件
    如何利用Web应用防火墙应对未知威胁
    k8s 1.22.3使用持久化卷之存储类StorageClass+NFS pv动态供应
    PDA库存盘点,有效提高电子制造企业库存盘点效率
    解决在pycharm中使用matplotlib画图问题
    从零学习VINS-Mono/Fusion源代码(五):VIO初始化
  • 原文地址:https://blog.csdn.net/a1275302036/article/details/127512222
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号