jenkins部署springboot项目jar包

jenkins部署springboot项目jar包

前言:随着互联网架构的快速发展,传统的一个war包打天下的场景逐渐被微服务所替代,而是将项目按照业务拆分成多个微服务。一般情况下微服务都是将项目打成jar包,然后部署,今天主要分享的是如何使用jenkins部署jar包,与传统的war包部署的方式还是有差异,因为部署war包只要将war包扔到tomcat中即可,而jar包需要使用java -jar xxx.jar才能运行起来

一、jenkins环境搭建

jenkins部署jar包和部署war前半部分的配置基本是一样的,如果对jenkins完全不太了解的可以参考我的另外一篇博客(jenkins+maven+svn自动部署和发布(超详细,图文并茂),上面有jenkins的环境搭建、配置等,这里就不再重述。

二、部署jar包

1、新建任务

jenkins部署springboot项目jar包

 

 jenkins部署springboot项目jar包

2、配置

jenkins部署springboot项目jar包

 jenkins部署springboot项目jar包

上面重点在于执行shell脚本,起始脚本看上去也是比较简单,stop.sh主要是停止当前的进程、startup.sh这个其实就是将jenkins生成的jar包拷贝到制定目录,然后java -jar运行而已。到这里页面上算是配置完成了,接下来看看上面三个shell脚本的内容

(1)上面执行shell的内容

#!/bin/bash
cd /home/jenkins/HelloWorld
echo "execute stop.sh shell start ..."
sh stop.sh
echo "execute stop.sh shell finish"
chmod 777 /home/jenkins/HelloWorld/startup.sh
BUILD_ID=dontiKillMe nohup /home/jenkins/HelloWorld/startup.sh &

 (2)stop.sh

#!/bin/sh
cd /home/jenkins/HelloWorld
echo "stopping helloboot application...."
pid=`ps -ef | grep helloboot-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if ["$pid" == ""]
    then
        echo "helloboot is already stop!"
else
    echo "kill -9 的pid:"+$pid
    kill -9 $pid
fi

其实就是kill掉当前的进程

(3)startup.sh

#!/bin/sh
echo "remove old helloboot.jar ..."
rm /home/jenkins/HelloWorld/helloboot-0.0.1-SNAPSHOT.jar
cp /root/.jenkins/jobs/HelloWorld/workspace/target/helloboot-0.0.1-SNAPSHOT.jar /home/jenkins/HelloWorld
sleep 2s
echo "running helloboot.jar...."
java -jar /home/jenkins/HelloWorld/helloboot-0.0.1-SNAPSHOT.jar &
echo "running helloboot finish"

亲测有效!

好了到这里配置就已经结束了,直接在界面上点击构建就行了,其实也蛮简单的,就是写shell脚本对于没写过的人来说不太会写

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111226.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SSR Windows电脑客户端下载和使用教程

    SSR Windows电脑客户端下载和使用教程https://garygeng.com/others/ssr-windows/很多的同学还是没有找到有效的SSR客户端下载地址,所以整理了下win下ssr客户端在使用上的问题,本文只提供工具和教程

    2022年8月3日
    1.2K
  • latex文字加粗、斜体

    latex文字加粗、斜体显示直立文本 textup 文本 意大利斜体 textit 文本 slanted 斜体 textsl 文本 显示小体大写文本 textsc 文本 中等权重 textmd 文本 加粗命令 textbf 文本 默认值 textnormal 文本 斜体字 textit italic 或者 emph italic 细体字 textlf lightf

    2025年10月23日
    4
  • js remove方法_js清除session

    js remove方法_js清除session//如果列表中有存在给定的值就删除//functionremoveClass(ele,txt){//varstr=ele.className,//ary=str.split(/\s

    2022年8月2日
    8
  • 项目范围管理:范围定义[通俗易懂]

    项目范围管理:范围定义[通俗易懂]定义范围是制定项目和产品详细描述的过程。 定义范围的主要作用是:明确所收集的需求哪些将包括在项目范围内,哪些将排除在项目范围外,从而明确项目、服务或输出的边界。 范围定义的内容和作用:由于在收集需求过程中识别出的所有需求未必都包含在项目中,所以定义范围过程就是从需求文件中选取最终的项目需求,然后制定出关于项目及其产品、服务或输出的详细描述。 准备好详细的项目范围说明书,对项目成功至关重要。应根据项目启动过程中记载的主要可交付成果、假设条件和制约因素来编制项目范围说明书。在项目规划过程中,随着对项目

    2022年9月22日
    2
  • web安全书籍_web安全书单

    web安全书籍_web安全书单基础书籍《信息安全标准和法律法规(第二版)》(注:武汉大学出版社)《HTTP权威指南》《HTML5权威指南》《JavaScript权威指南(第6版)》《TCP/IP详解卷1:协议》《SQL编程基础(原书第3版)》《PHP和MySQLWeb开发(第四版)》《PHP安全基础》《PHP应用程序安全编程》《高级PHP应用程序漏洞审核技术》《精通正则表达式(第

    2022年9月16日
    3
  • JAVA reference_Java instanceof

    JAVA reference_Java instanceof本文介绍对象的强、软、弱和虚引用的概念、应用。1.对象的强、软、弱和虚引用  在JDK1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。

    2025年10月7日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号