在云服务器上自动化部署项目,jenkins和gitee

news2025/2/28 23:19:24

▮全文概述

   在编写项目时,很头大的事情就是需要自己手动的上传jar包到服务器上启动。如果出现一点bug,就要重头上传和启动。这是一件很烦的事情,所以,可以使用jenkins和gitee实现项目的自动部署


▮全流程

  1.   在本地提交代码到gitee 
  2.   gitee发送请求通知jenkins
  3.   jenkins接到通知后自动执行任务
  4.   构建maven项目,打jar包
  5.   构建后执行启动jar包的脚本

最终,我在本地提交代码,服务器也可以跟着改变,不再需要我手动的去上传jar包到服务器启动。全操作很简洁,不使用Docker,也不需要配置


▮建立gitee仓库

  • 使用github,gitlab都可以
  • 使用gitee比较方便,也不需要我去搭建gitlab

▮下载jenkins

▪上传jenkins的war包到服务器

通过百度网盘分享的文件:jenkins.war
链接:https://pan.baidu.com/s/1RjwJ0Yy7tnyd9WjzukaSvw?pwd=hldy

提取码:hldy 

▪上传Maven包到服务器

通过百度网盘分享的文件:apache-maven-3.6.3.zip
链接:https://pan.baidu.com/s/1fMHnDfXxJ5I9bF88u3h6dw?pwd=hldy 

提取码:hldy 

网盘里Maven的仓库源是阿里云的。如果你的Maven是从别的渠道下载,记得修改“settings.xml” 文件里的仓库源

▪服务器下载git

yum install git

▪服务器下载Java

yum install java-11-openjdk-devel

▮启动jenkins

▪启动命令(端口自定义,安全组记得开放)

nohup java -jar jenkins.war --httpPort=58082 &

▪访问Web界面

http://服务器IP:58082/ 第一次加载需要等待几分钟

 

▪从jenkins日志获取管理员密码

  

vim nohup.out打开日志文件读取token,:q退出vim

 

▪安装推荐插件

  

▪创建一个用户

  

▪实例配置

 


▮添加插件

▪Maven插件

  

向下滚动 ,看到Maven安装完成就行

 

▪Gitee插件

  


▮系统配置

▪配置Maven

▪配置Gitee

  


▮新建任务

▪丢弃旧的构建 

▪配置源码-Git

  从仓库获取连接 

▪配置gitee的构建触发器(gitee通知jenkins执行此任务)

 

 什么都不用管,只需要生成下面这个Gitee WebHook就行

▪设置gitee仓库的WebHook

  

 在这个界面是可以测试钩子是否正常的,但不知为何,在gitee上测试只会报错,但你提交代码的时候又可以正常的触发钩子。所以这里我先不管,后面再去测试钩子是否正常

▪指定pom文件

▪执行shell命令,启动jar包

  

BUILD_ID=DONTKILLME
#获取你想运行jar包的进程号
pid=`ps -ef | grep mindmap.jar | grep -v grep | awk '{print $2}'`
#如果存在则把该进程杀掉
if [ -n "$pid" ]
then
   echo "kill -9 的pid:" $pid
   kill -9 $pid
fi
echo "复制jar包"
#把jenkins打的jar包复制到自己指定的目录下
cp  /root/.jenkins/workspace/mindMap/5.mindmap-service/target/mindmap.jar /root/cloud
echo "启动jar包"
#最后启动jar包并把日志输出到指定的文件中以便查看
nohup java -jar /root/cloud/mindmap.jar & 

 在文本框里输入要执行的命令

"mindmap.jar",是jar包名,这个记得换成你自己的包名

"cp  /root/.jenkins/workspace/mindMap/5.mindmap-service/target/mindmap.jar /root/cloud"
  • "/root/.jenkins/workspace"是jenkins的工作目录,在控制台是看不到的,但是你可以通过cd指令进入。
  • "/root/cloud"是我自定义的一个目录,这个指令就是把打出的jar包转移到这个目录下。这个你可以自定义

至此,整个任务配置完成,如果你需要打多个jar包启动,那你可以把上面这个命令行复制几份去启动就行。如果你向使用DockerFile


▮测试

▪在本地git提交代码到仓库

▪jenkins自动部署

  

点击可以进入,实时查看执行流程

第一次打包需要加载很多东西,所以需要比较长的时间

打包成功 

执行指令,后台启动jar包

可以看到,需要的服务已经全部启动。这就是全自动部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1968803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kvm+glusterfs+pcs分布式存储构建kvm高可用群集。

kvmglusterfspcs分布式存储构建kvm高可用群集。 高可用指能在短时间内自动完成故障转移,kvm在实现故障自动转移的方式如果要考虑速度那么基于共享存储的迁移方法无疑是最快的。而共享存储的高可用就可以用glusterfs来实现。 glusterfs可以利用分布式复制卷兼顾了性能…

图解RocketMQ之消费者如何进行消息重试

大家好,我是苍何。 在上一篇[[图解RocketMQ之生产者如何进行消息重试]]中分析了当生产者发送消息失败的时候,RocketMQ 是如何进行重试的。 最后留了一个问题,生产端的消息是重试 hold 住了,但如果消费者出现异常,消费…

leetcode53. 最大子数组和(java实现)

今天分享的题目是leetcode53题 本题的解题思路:贪心算法。 举个例子: nums [-2,1,-3,4,-1,2,1,-5,4],如果说我们的累加和是负数那么就将其舍弃,换下一个位置从新进行累加,因为如果目前我们的累加和如果是负数那么还不…

Zotero的探索之路

下载安装 Zotero | Downloads:点击链接,不仅要下载软件本身,也要下载浏览器connector,这样就方便从网页抓取论文到zotero本地了,浏览器是使用插件导入下载包即可 导入文献方法 zotero自动下载(推荐&#…

C 语言快速排序算法

升序排序 /*快速排序算法排序规则 */ int32_t CmpCb(const void* _a, const void* _b) {uint16_t* a (uint16_t*)_a;uint16_t* b (uint16_t*)_b;int32_t val 0;if (*a > *b){val 1;}else if (*a < *b){val -1;}else {val 0;}return val; }int main() {// 创建局部…

c++----类与对象(下)

当我们简单的学习了上一篇日期类。简单的理解并且使用了我们前面学习的知识。当然这还只是我们c的九牛一毛。并且我们的类与对象的知识还没学习完。今天我们来把类与对象的知识完善一下。 初始化列表 那么今天我们就不讲废话了&#xff0c;我们直接来主题。首先我们可以看到我…

大型语言模型入门

大型语言模型 快速、全面了解大型语言模型。学习李宏毅课程笔记。 ChatGPT 目前由OpenAI公司发明的非常火的人工智能AI应用ChatGPT&#xff0c;到底是什么原理呢&#xff1f; G&#xff1a;Generative(生成) P&#xff1a;Pre-trained(预训练) T&#xff1a;Transformer(一种…

手把手教你如何在Linux上轻松安装Python,告别编程入门难题

导语&#xff1a; Python作为当下最热门的编程语言之一&#xff0c;受到了越来越多人的喜爱。对于Linux用户来说&#xff0c;掌握如何在Linux上安装Python至关重要。今天&#xff0c;就让我带领大家一步步在Linux上安装Python&#xff0c;让你轻松迈入编程世界&#xff01; 一…

MATLAB(7)潮汐模型

一、前言 在MATLAB中模拟潮汐通常涉及到使用潮汐的理论模型&#xff0c;如调和常数模型&#xff08;Harmonic Constants Model&#xff09;&#xff0c;它基于多个正弦和余弦函数的叠加来近似潮汐高度随时间的变化。以下是一个简化的MATLAB代码示例&#xff0c;用于模拟一个基于…

centos在线安装部署2024年最新的docker版本

1.yum 包更新到最新 sudo yum update -y2.安装依赖软件包 sudo yum install -y yum-utils device-mapper-persistent-data lvm23.添加阿里的镜像&#xff0c;下载镜像速度比较快 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/dock…

docker compse简介与安装

目录 1. Docker Compose 简介 2. Docker Compose 安装 2.1 在 Ubuntu 上安装 Docker Compose 2.1.1 通过 apt 安装 2.1.2 使用官方脚本安装最新版本 2.2 在 CentOS 上安装 Docker Compose 2.2.2 使用官方脚本安装最新版本 2.2.3 使用 pip 安装 2.3 在 openEuler 上安装…

【跨时代】第四次工业革命彻底来袭!什么是AI+

你有没有一种很割裂的感觉&#xff0c;就是在短视频里&#xff0c;AI已经要改变全世界了 但自己一用&#xff0c;却发现只能和AI聊聊天 画几张图 难道是姿势不对&#xff1f;但具体是哪里不对呢。 作为一个老牌程序员&#xff0c;我前面分享了很多计算机相关内容&#xff0c;总…

java基础概念06-原码、反码、补码

一、八位二进制的取值范围&#xff08;没有符号位&#xff09; 二、原码 三、反码 若是反码的计算结果跨0了&#xff0c;则会溢出&#xff0c;计算结果又误差&#xff01; 原因&#xff1a;在反码当中0有两种表现形式&#xff1a; 解决方式&#xff1a;将反码中的两个0&#x…

SSM大学生体质管理系统-计算机毕业设计源码75960

摘要 基于SSM的大学生体质管理系统是一款综合性平台&#xff0c;融合了在线课程、健康知识、体测报告等多项功能&#xff0c;旨在为广大大学生提供全方位的健康管理服务。通过在线课程和健康知识模块&#xff0c;用户可以随时学习健康知识&#xff0c;掌握科学的健康管理方法&a…

推荐一个比较好的开源位置服务平台

平台简介 一直想做一款后台管理系统&#xff0c;同时可以管理人&#xff0c;车&#xff0c;物品&#xff0c;猫&#xff0c;狗&#xff0c;牛羊等一切可以移动的室外事物进行集中化管理&#xff0c;最初的需求聚焦——谁在哪儿&#xff01; 系统框架是基于当前最常用的RuoYi框架…

C# 设计模式之创建者模式

总目录 前言 在软件系统中&#xff0c;有时需要创建一个复杂对象&#xff0c;并且这个复杂对象由其各部分子对象通过一定的步骤组合而成。例如一个采购系统中&#xff0c;如果需要采购员去采购一批电脑时&#xff0c;在这个实际需求中&#xff0c;电脑就是一个复杂的对象&…

DVWA (SQL注入 low)

&#xff08;1&#xff09;判断注入是字符型还是数值型 判断恒为真&#xff0c;字符型&#xff0c;输出ures表中全部用户信息。 1 or 123 123 # &#xff08;2&#xff09;猜测SQL查询字段数 1后面加 闭合 id 查询的 &#xff0c;末尾加# 是注释了后面 的内容&#xff…

LLM智能体工程落地思考(一)

人工智能领域著名教授吴恩达在今年3月份红杉资本的人工智能峰会(AI Ascent)以及最近Snowflake峰会开发者日上都发表了关于AI Agent(人工智能体)的演讲。演讲中&#xff0c;其分享了对AI Agent未来发展潜力的展望。认为AI Agent能够让人工智能胜任更多种类的任务&#xff0c;甚至…

STL源码刨析:树的导览

目录 1.前言 2.关联式容器 3.二叉搜索树 4.平衡二叉搜索树 前言 在阅读了STL源码刨析系列的前几章&#xff0c;我们可以知道容器分为序列式容器和关联式容器。在前几个小节中&#xff0c;我们对序列式容器中的vector和list容器进行了讲解&#xff0c;并比较了vector和list的区别…

学习记录——day24 多线程编程

目录 多线程局部概念 线程支持函数&#xff08;多线程编程&#xff09; pthread_create&#xff1a;创建线程 pthread -self&#xff1a;线程号获取 pthread_exit&#xff1a;线程退出函数 pthread_jion&#xff1a;线程资源回收 pthred_detath&#xff1a;线程分离态 p…