当前位置: 首页 > news >正文

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

▮全文概述

   在编写项目时,很头大的事情就是需要自己手动的上传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" ]
thenecho "kill -9 的pid:" $pidkill -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包

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

相关文章:

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

▮全文概述 在编写项目时,很头大的事情就是需要自己手动的上传jar包到服务器上启动。如果出现一点bug,就要重头上传和启动。这是一件很烦的事情,所以,可以使用jenkins和gitee实现项目的自动部署 ▮全流程 在本地提交代码到gitee …...

python 参数输入

在 Python 中,参数输入通常有多种方式,这取决于你要从何处获取参数。以下是几种常见的方法: 1. 命令行参数 使用 sys.argv 获取命令行参数,或者使用 argparse 模块进行更复杂的参数解析。 示例 1: 使用 sys.argv import sys# …...

Spring面试篇章——Spring基本概述

Spring 的基本概述 Spring学习的核心内容—一图胜千言 IOC:控制反转,可以管理 Java 对象AOP:切面编程JDBCTemplate:是Spring提供一套访问数据库的技术,应用性强,相对好理解声明式事务:基于IOC …...

股票预测模型中注意力多层Attention RNN LSTM 的应用

全文链接:https://tecdat.cn/?p37152 原文出处:拓端数据部落公众号 Attention 机制是一种在神经网络处理序列数据时极为关键的技术,它赋予了模型“聚焦”能力,能够自动评估输入序列中各部分的重要性。通过为序列中的每个元素分…...

C语言 | Leetcode C语言题解之第313题超级丑数

题目&#xff1a; 题解&#xff1a; int nthSuperUglyNumber(int n, int* primes, int primesSize) {long dp[n 1];int pointers[primesSize];for (int i 0; i < primesSize; i) {pointers[i] 0;}long nums[primesSize];for (int i 0; i < primesSize; i) {nums[i] …...

PHP健身微信小程序系统源码

&#x1f3cb;️‍♀️健身新潮流&#xff01;解锁“健身微信小程序”的全方位塑形秘籍 &#x1f4f1;开篇&#xff1a;掌中健身房&#xff0c;随时随地动起来 你还在为找不到合适的健身场地或教练而烦恼吗&#xff1f;是时候告别这些束缚&#xff0c;拥抱“健身微信小程序”…...

树组件 el-tree 数据回显

树组件 el-tree 数据回显 树型结构的数据回显问题&#xff1a; 这里我只放了核心代码&#xff0c;主要是如何获取选中的树节点的id集合和如何根据树节点的id集合回显数据 大家根据需要自行更改&#xff01; <el-tree ref"authorityRef" node-key"id" …...

54、PHP 实现希尔排序

题目&#xff1a; PHP 实现希尔排序 描述&#xff1a; 思路分析&#xff1a;希尔排序是基于插入排序的&#xff0c;区别在于插入排序是相邻的一个个比较&#xff08;类似于希尔中h1的情形&#xff09;&#xff0c;而希尔排序是距离h的比较和替换。 希尔排序中一个常数因子n&a…...

linux 虚拟机解压arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2并arm-linux-gcc

解压到当前目录&#xff1a;tar -jxvf arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2解压到指定目录&#xff1a;tar -jxvf arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2 -C /xx/xxx/xxx-C大写&#xff0c;后面接要解压的路径解压后得到一个 opt文件夹 在/usr/local/bin 下创建新的…...

泛化的最近点迭代法(Generalized-ICP)

Generalized-ICP算法是由斯坦福大学的Aleksandr V. Segal、Dirk Haehnel和Sebastian Thrun提出的&#xff0c;于2009年在Robotics science and system会议上发表。 GICP是一种ICP算法的变体&#xff0c;其原理与ICP算法相同&#xff0c;之所以称为泛化的ICP算法是因为大多数ICP…...

Java | Leetcode Java题解之第313题超级丑数

题目&#xff1a; 题解&#xff1a; class Solution {public int nthSuperUglyNumber(int n, int[] primes) {int[] dp new int[n 1];int m primes.length;int[] pointers new int[m];int[] nums new int[m];Arrays.fill(nums, 1);for (int i 1; i < n; i) {int minN…...

单细胞数据整合-去除批次效应harmony和CCA (学习)

目录 单细胞批次效应学习 定义 理解 常用的去批次方法-基于Seurat 1&#xff09; Seurat-integration&#xff08;CCA&#xff09; 2&#xff09; Seurat-harmony 去批次代码 ①Seurat-integration&#xff08;CCA&#xff09; ②Seurat-harmony 单细胞批次效应学习 …...

MuRF代码阅读

对图像Size的处理, 以适应Transformer 在MVSPlat 当中使用 Center_Crop 裁剪图像&#xff0c;适用于 Transformer 的32 倍数&#xff0c; 其中 焦距 f 不变化&#xff0c;只改变 cx,cy.MuRF 直接对图像进行 插值&#xff0c;合成理想的 size. 根据 ori_size 和 inference_size…...

pycharm无法导入pyside2模块;“ModuleNotFoundError: No module named ‘PySide2“

参考博客&#xff1a; 1&#xff09;pycharm中配置pyqt designer和pyside2【功能是在pycharm中可以打开designer,并且可以把.ui文件转换为.py文件】 https://blog.csdn.net/kuntliu/article/details/117219237 2&#xff09;.ui转化为.py后&#xff0c;点击运行&#xff0c;报错…...

c语言指针中“数组名的理解”以及“一维数组传参”的本质

数组名的理解 数组名就是数组首元素的地址。 例如&#xff1a;输入一个数组的所有元素&#xff0c;再打印出来。 另一种写法 以上可以看出&#xff1a;*arri&#xff09; arr[i] 也即是&#xff1a;*(iarr)i[arr] 本质上无区别 1&#xff1a;数组就是数组&#xff0c;是一块…...

计算机毕业设计Python+Flask微博舆情分析 微博情感分析 微博爬虫 微博大数据 舆情监控系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI

基于Python/flask的微博舆情数据分析可视化系统 python爬虫数据分析可视化项目 编程语言&#xff1a;python 涉及技术&#xff1a;flask mysql echarts SnowNlP情感分析 文本分析 系统设计的功能&#xff1a; ①用户注册登录 ②微博数据描述性统计、热词统计、舆情统计 ③微博数…...

KubeBlocks v0.9 解读|最高可管理 10K 实例的 InstanceSet 是什么?

实例&#xff08;Instance&#xff09;是 KubeBlocks 中的基本单元&#xff0c;它由一个 Pod 和若干其它辅助对象组成。为了容易理解&#xff0c;你可以先把它简化为一个 Pod&#xff0c;下文中将统一使用实例这个名字。 InstanceSet 是一个通用 Workload API&#xff0c;负责…...

ZW3D二次开发_菜单_禁用/启用表单按钮

1.如图示&#xff0c;ZW3D可以禁用表单按钮&#xff08;按钮显示灰色&#xff09; 2.禁用系统默认表单按钮&#xff0c;可以在菜单空白处右击&#xff0c;点击自定义&#xff0c;找到相关按钮的名称&#xff0c;如下图。 然后使用代码&#xff1a; char name[] "!FtAllBo…...

windows子系统wsl完成本地化设置locale,LC_ALL

在 Windows 的子系统 Linux&#xff08;WSL&#xff09;环境中&#xff0c;解决本地化设置问题可以采取以下步骤&#xff1a; 1. **检查本地化设置**&#xff1a; 打开你的 WSL 终端&#xff08;比如 Ubuntu、Debian 等&#xff09;&#xff0c;运行以下命令来查看当前的本…...

MYSQL 根据条件order by 动态排序

文章目录 案例1&#xff1a;根据动态值的不同&#xff0c;决定某个字段是升序还是降序案例2&#xff1a;根据动态值的不同&#xff0c;决定使用哪个字段排序 最近在做大数据报表时&#xff0c;遇到这样一种情况&#xff0c;若是A类型&#xff0c;则部门按照正序排序&#xff1b…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...