首页 > 其他分享 >Jenkins 流水线发布JAR包

Jenkins 流水线发布JAR包

时间:2023-01-01 22:24:16浏览次数:38  
标签:helloword git false JAR jar 构建 BUILD 流水线 Jenkins

1、流水线内容:文件以Jenkinsfile命名

pipeline {
    agent any

    stages {
        stage('拉取代码') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[url: '[email protected]:gitlab-instance-0d7d20f4/cicd.git']]])
            }
        }
		stage('打JAR包') {
            steps {
               sh 'mvn clean package'
            }
        }
		stage('部署前操作') {
            steps {
               sshPublisher(publishers: [sshPublisherDesc(configName: '120.48.34.146', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''source /etc/profile
bash /home/qinzt/jar/helloword/run.sh stop helloword-*.jar
mv /home/qinzt/jar/helloword/helloword-*.jar{,.$(date +%F-%S)}''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
		stage('远程部署') {
            steps {
               sshPublisher(publishers: [sshPublisherDesc(configName: '120.48.34.146', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''source /etc/profile
cd /home/qinzt/jar/helloword && ./run.sh start helloword-*.jar''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'jar/helloword', remoteDirectorySDF: false, removePrefix: 'target', sourceFiles: '**/helloword-*.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }   
        }
    }
	post {
		always {
			//邮箱通知配置
			emailext attachLog: true, body: '${FILE,path="email.html"}', subject: '【构建通知】:${PROJECT_NAME}', to: '[email protected]'
		}
	}

}

2、邮箱通知模板内容:文件以email.html命名

<!DOCTYPE html>    
<html>    
<head>    
<meta charset="UTF-8">    
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
</head>    
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
offset="0">    
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
    <tr>    
        本邮件由系统自动发出,无需回复!<br/>            
        各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> 
        <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
    </tr>    
    <tr>    
        <td><br />    
        <b><font color="#0B610B">构建信息</font></b>    
        <hr size="2" width="100%" align="center" /></td>    
    </tr>    
    <tr>    
        <td>    
            <ul>    
                <li>项目名称 : ${PROJECT_NAME}</li>    
                <li>项目描述 : ${JOB_DESCRIPTION}</li>    
                <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    
                <li>触发原因: ${CAUSE}</li>    
                <li>构建状态: ${BUILD_STATUS}</li>    
                <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
                <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
            </ul>    
        </td>    
    </tr>    
    <tr> 
        <td><b><font color="#0B610B">变更集</font></b>
        <hr size="2" width="100%" align="center" /></td>    
    </tr>
        <td>${JELLY_SCRIPT,template="html"}<br/>
            <hr size="2" width="100%" align="center" /></td>    
        </tr>
    </table>    
</body>    
</html>

3、将Jenkinsfileemail.html推送到git库根目录中

git add .
git commit -m "add Jenkinsfile email.html"
git push -u origin main

4、配置流水线

标签:helloword,git,false,JAR,jar,构建,BUILD,流水线,Jenkins
From: https://www.cnblogs.com/qinziteng/p/17019137.html

相关文章

  • 通过Gitlab管理Jenkins Pipeline流水线
    1、首先需要将已经调试好的Jenkinspipeline文件上传到git库中,推荐以Jenkinsfile命名放至git库根目录gitadd.gitcommit-m"pipelinev1"gitpush-uoriginmain......
  • Jenkins Pipeline快速入门
    目录一、Pipeline安装二、语法讲解一、Pipeline安装Pipeline,简单来说,就是一套运行在Jenkins上的工作流框架,将原来独立运行于单个或多个节点的任务连接起来,实现单个任务难......
  • Jar包中Class文件替换
    转载:Jar包中Class文件替换_我是可爱的小姑娘的博客-CSDN博客1、查找替换的class的具体路径jar-tvf*.jar|grep*.class(*根据自己的jar包和类名替换)2、根据第一步查......
  • SpringBoot启动时报错 no main manifest attribute, in XXX1.0.0-SNAPSHOT.jar
    SpringBoot启动时报错nomainmanifestattribute,inXXX1.0.0-SNAPSHOT.jar 问题原因在pom.xml的build中添加plugin 解决方案在pom.xml文件中,添加如下内容:......
  • Centos7上使用jenkins执行pipeline在容器内部拉取环境运行代码的各种坑
    环境Centos7上部署了三个服务bitbucket192.168.1.156:7900jenkins192.168.1.156:8080docker服务原理在Dockerfile中定义pipelinescripts,然后拉取dockerhub的镜像作......
  • k8s部署jenkins
    1.部署Jenkins版本:2.375.1创建命名空间:kubectlcreatenamespacekube-ops创建PVC,为Jenkins提供数据持久化:mkdir-p/root/jenkins_install&&cd/root/jenkins......
  • python创建config.xml文件,调用Jenkins API接口创建带参数的Job
    文章目录​​一、要求​​​​二、pipeline模板xml的内容可以通过如下方式获取​​​​三、代码​​​​四、效果​​​​五、参考文章​​一、要求将hudson.model.StringPa......
  • Jenkins教程
    一、Jenkins介绍1.1持续集成持续集成(Continuousintegration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,同时还能保......
  • Selenium43-Jenkins持续集成
    软件工程互联网软件的开发、测试和发布,软件工程已经形成了一套标准流程,把工作流程分为以下几个阶段CI/CD介绍持续集成(Continuousintegration,简称CI)持续集成指的......
  • manjaro安装微信和QQ
    在使用 yay-Sdeepin-wine-wechat过程中出现缺少依赖!deepin-udis86系统找不到这个包!下边是下载链接:https://github.com/JohnMasoner/deepin-udis86该网页又如何安装的......