【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行

在这里插入图片描述

👨‍🎓博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • 运行环境说明
  • 一、创建一个maven项目
    • 1.1 安装必要的插件【必须】*
    • 1.2 创建maven任务
  • 二、配置maven项目
    • 2.1 maven项目中的配置项详解
      • 2.1.1 General
      • 2.1.2 源码管理
      • 2.1.3 构建触发器
      • 2.1.4 构建环境
      • 2.1.5 Pre Steps(准备步骤)
      • 2.1.6 Build(构建)
      • 2.1.7 Post Steps(发布步骤)
      • 2.1.8 构建设置
    • 2.2 配置maven项目
      • 2.2.1 服务器需要提前安装:
      • 2.2.2 配置全局系统配置
      • 2.2.3 配置全局工具配置
      • 2.2.4 先写一个描述(可写可不写)
      • 2.2.5 创建源码管理(svn方式)
      • 2.2.6 保存配置
  • 三、构建maven项目
    • 3.1 build(构建)项目
    • 3.2 构建完成
    • 3.3 构建报错总结:
      • 3.3.1 关于maven版本问题报错
      • 3.3.2 关于jdk版本配置的问题
  • 四、构建完自动在服务器中运行
    • 4.1 在项目中配置Post Steps(发布步骤)
    • 4.2 自动构建jar包并运行
  • 五、动构建打包jar包并运行完成

运行环境说明

运行环境运行版本作用
操作系统centos 7.8运行Jenkins的基础环境
jenkins版本2.419用于构建项目及其他自动化
maven版本3.8.6用于构建jar包
jdk版本18、1.818(用于运行Jenkins)、1.8(用于运行jar包)

一、创建一个maven项目

1.1 安装必要的插件【必须】*

  • maven
  • git
  • ssh
  • svn

一般在部署完成,访问的时候选择默认安装插件基本都会装 – git。

点击 Manage Jenkin –> Plugins(插件) --> Available plugins(商店)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 搜索gitmavensshsvn 进行安装;

git 和 ssh 我这里已经有了,需要更新就更新一下;

在这里插入图片描述
在这里插入图片描述

maven、svn 我这里没有,就安装一下吧;

在这里插入图片描述

安装完成之后,在新建Item 那块就可以看到maven了。如下↓

在这里插入图片描述

svn

在这里插入图片描述

1.2 创建maven任务

  • 新建Item – > 选择maven项目,起一个任务名称。

在这里插入图片描述

创建完之后,就到了这个页面

在这里插入图片描述

二、配置maven项目

下面来讲解一下maven项目里的配置项。

2.1 maven项目中的配置项详解

2.1.1 General

项目描述,可以在这块写一些项目的描述。

在这里插入图片描述

2.1.2 源码管理

主要是拉取源码用的,这里有两种,一种是git,一种是svn方式。等下我们创建项目使用的是svn方式。

在这里插入图片描述

这个不仅Jenkins项目上要安装git插件,在服务器上也需要安装git。

yum -y install git

2.1.3 构建触发器

默认勾选上的是下面的选项:Jenkins将会去寻找之前已经构建过的pom依赖(如果有之前构建过的相同的pom文件),直接使用之前的镜像,便不会再去重新的解析了

在这里插入图片描述

2.1.4 构建环境

在这里面,勾选上对应的内容,将去做一些额外的处理,在这里保持默认的,什么都不去勾选

在这里插入图片描述

这是翻译后的,可根据实际情况来使用。

在这里插入图片描述

2.1.5 Pre Steps(准备步骤)

准备步骤,一般会选择Execute shellInvoke Gradle script

在这里插入图片描述

2.1.6 Build(构建)

在这里插入图片描述

2.1.7 Post Steps(发布步骤)

这个配置,说明的是:在项目构建完成之后,接下来需要做的内容

在这里,我们需要将构建完的项目,打成的包传到我们的测试服务器上,也是在这里去进行配置的

2.1.8 构建设置

这里可以配置电子邮件通知。比如失败,成功,都可以进行发送邮件来通知提醒。

2.2 配置maven项目

2.2.1 服务器需要提前安装:

如果是使用git部署,服务器上也需要安装git;

  • jdk1.8

  • maven

  • jdk:根据自己的项目选择所需的jdk版本,我的项目是需要 jdk11以上,用的是jdk18 才可以;
    如果是需要jdk1.8,并且Jenkins是按照我的部署文档部署的,那么默认就会有jdk1.8,可以使用find / -name java 找一下java的安装路径,将绝对路径配置到全局工具配置里就行;如果没有安装,需要安装一下;可参考:Linux中安装jdk1.8和配置环境变量

  • maven:根据自己的项目选择所需的mvn版本,我的项目是需要 maven3.8 才可以;
    maven环境默认是没有的,也需要在服务器安装一下,可参考:【Linux】Centos安装mvn命令(maven),建议使用maven3.8,下载地址:https://pan.baidu.com/s/1drjw-sQ5JKFukamVSsLqtw?pwd=b1a0

2.2.2 配置全局系统配置

Manage Jenkins --> System

在这里插入图片描述

  • 配置ssh环境

提示:如果找不到ssh在哪,可以使用ctrl+f搜索一下;

在这里插入图片描述

2.2.3 配置全局工具配置

Manage Jenkins --> Tools

在这里插入图片描述

  • maven配置

在项目开始前,我们安装了maven,所以maven使用默认的配置就行,所以这块不用改。
如果服务器有多个maven,需要用到这时候就需要重新配置一下了,配置的时候到maven的setting.xml路径,比如/usr/local/maven/apache-maven-3.8.6/conf/setting.xml

在这里插入图片描述

然后我们拉到最下面可以看到还有一个maven,这个需要配置一下;

找到Maven安装 --> 点击新增Maven --> 配置maven路径即可;

在这里插入图片描述

  • jdk配置

找到JDK安装 --> 点击新增JDK --> 配置jdk路径即可;

在这里插入图片描述

配置完之后保存。

2.2.4 先写一个描述(可写可不写)

进入刚刚创建的maven项目,选择配置,跳到这个页面;

在这里插入图片描述

2.2.5 创建源码管理(svn方式)

在这里插入图片描述
在这里插入图片描述

2.2.6 保存配置

配置完之后,点击保存

在这里插入图片描述

三、构建maven项目

3.1 build(构建)项目

保存完之后,看到左边有一个build now,然后点击build(构建)就可以了;

在这里插入图片描述

构建的时候可以查看构建过程,F5 刷新一下页面

在这里插入图片描述

往下拉,看到这个,点进去,然后点击控制台输出,就可以看到构建过程了。

在这里插入图片描述
在这里插入图片描述

3.2 构建完成

出现Finished: SUCCESS 就是构建完成了。

在这里插入图片描述

同时,最上面也会变成一个绿色的对号;

在这里插入图片描述

构建完之后就可以在服务器上查看了,以下是存放到服务器的路径。

在这里插入图片描述

3.3 构建报错总结:

3.3.1 关于maven版本问题报错

如果在build的时候遇到此报错,是因为maven版本的问题;

在这里插入图片描述

3.3.2 关于jdk版本配置的问题

如果在build的时候遇到此报错,是因为jdk版本配置的问题;

在这里插入图片描述

四、构建完自动在服务器中运行

4.1 在项目中配置Post Steps(发布步骤)

这就是在build完之后,需要进行什么操作,在这里写。
可以使用ssh 方式或者 shell 方式;
sshshell 其实都一样,都是写命令的;
ssh还需要配置全局变量,虽然上面已经配置了,但是我一般经常用 shell 方式,看自己选择吧。
这里以 shell 方式举例。

首先,需要返回刚刚的项目中进行配置;

在这里插入图片描述

  • 找到 Post Steps

在这里插入图片描述

  • 选择执行shell,写个shell脚本(也可以使用ssh方式,自己定义)

在这里插入图片描述
在这里插入图片描述

  • shell 脚本内容

提示:如果要运行jar包的话,必须在脚本里添加:BUILD_ID=DONTKILLME 环境变量,防止执行完自动化构建jar包程序自动停止问题。

#!/bin/bash# (必须)配置一个环境变量,防止执行完自动化构建jar包程序自动停止问题
BUILD_ID=DONTKILLME# 源jar包及路径
src_jar="/root/.jenkins/workspace/mytest_maven/target/cs.jar"
# 目标jar及包路径
dest_jar="/application/cs.jar"
# 目标jar包路径
dest_path="/application/"# 创建目标路径
mkdir -p /application/# 将打包完的jar包复制过去
## 先判断jar包是否存在,如果存在则备份,如果不存在,则直接复制过去运行。
if [ -e $dest_jar ];thenecho "存在此文件,开始备份,重新复制:$(date +"%Y-%m-%d")"mv $dest_jar $dest_jar-$(date +"%Y-%m-%d")cp -ar $src_jar $dest_jar
elseecho "目标路径没有这个文件,直接复制过去"cp -ar $src_jar $dest_jar
ficd $dest_path
# 检测jar包进程,这里直接写jar包名称,因为如果引用上面的环境变量,是路径加jar包名,如果在服务器上但启动的话,可能会找不到,所以需要直接写jar包名称。
jar_jin=$(ps -ef | grep -v grep | grep -ic cs.jar)if [ "$jar_jin" -ge "1" ];thenecho "检测到进程,先杀掉,后启动"ps -ef | grep -v grep | grep cs.jar | awk -F " " '{print $2}' | xargs kill -9java -jar $dest_jar --server.port=9999 >> app.log &
elseecho "未检测到jar包进程,直接启动"java -jar $dest_jar --server.port=9999 >> app.log &
fi

配置完之后,点击保存;

在这里插入图片描述

4.2 自动构建jar包并运行

  • 点击构建(Build Now)

在这里插入图片描述

  • F5 刷新一下,可看到最新的构建运行

在这里插入图片描述

  • 点击进入,查看控制台输出。

在这里插入图片描述

输出Finished: SUCCESS 则为执行成功。

在这里插入图片描述

执行成功之后我们进入到服务器中,查看一下服务是否启动,可以查看端口是否启动或者jar包进程是否启动

ps -ef | grep cs.jarnetstat -anput | grep 9999

端口和jar包进程都存在,则可以去做访问页面之类的操作了。

如果访问不到,需要确认服务是否正常启动或防火墙端口是否开启。

这样自动构建打包jar包并运行就完成了。

五、动构建打包jar包并运行完成

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

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

相关文章

【南京工程学院×朗汀留学】部分录取案例合集

朗汀留学 X 南京工程学院 作为深耕留学的专业资深团队,朗汀留学成功帮助上千名学生出国留学。 在此我们将南京工程学院的部分留学案例作以总结,以供新生参考。再次恭喜所有 获得理想大学offer的学生们,你们的努力让梦想照进现实。 学校介绍…

2024年51cto视频下载方法

这里教大家如何将自己购买的51cto视频下载到本地 首先要利用一个工具:小白51cto工具 我已经打包好了 小白51cto链接:https://pan.baidu.com/s/1jR1fze51XaYwqhuOtlW7Wg?pwd1234 提取码:1234 --来自百度网盘超级会员V10的分享 教程开始 0.登录好51…

(三)Servlet教程——Tomcat安装与启动

首先打开浏览器在浏览器地址栏中输入清华大学开源软件镜像站地址,地址如下 https://mirrors.tuna.tsinghua.edu.cn/ 输入地址后回车会出现如下图所示的界面 在该界面找tomcat不是很好找,在搜索框中输入apache然后回车,输入apache后并回车后出…

代码随想录算法训练营第四十六天| LeetCode139.单词拆分

一、LeetCode139.单词拆分 题目链接/文章讲解/视频讲解:https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html 状态:已解决 1.思路 单词明显就是物品,字符串s明显就是背包,那么问题就变成了物品能不能把背…

java:观察者模式

java:观察者模式 1 前言 观察者模式,又被称为发布-订阅(Publish/Subscribe)模式,他定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所…

邂逅JavaScript逆向爬虫-------基础篇之面向对象

目录 一、概念二、对象的创建和操作2.1 JavaScript创建对象的方式2.2 对象属性操作的控制2.3 理解JavaScript创建对象2.3.1 工厂模式2.3.2 构造函数2.3.3 原型构造函数 三、继承3.1 通过原型链实现继承3.2 借用构造函数实现继承3.3 寄生组合式继承3.3.1 对象的原型式继承3.3.2 …

Java | Leetcode Java题解之第48题旋转图像

题目&#xff1a; 题解&#xff1a; class Solution {public void rotate(int[][] matrix) {int n matrix.length;// 水平翻转for (int i 0; i < n / 2; i) {for (int j 0; j < n; j) {int temp matrix[i][j];matrix[i][j] matrix[n - i - 1][j];matrix[n - i - 1]…

YOLOv8 训练自己的数据集(20240423)

环境搭建请参考&#xff1a;Win10 搭建 YOLOv8 运行环境&#xff08;20240423&#xff09;-CSDN博客 环境测试请参考&#xff1a;本地运行测试 YOLOv8&#xff08;20240423&#xff09;-CSDN博客 一、使用 YOLOv8 的 coco128 数据集熟悉一下如何训练和预测 1.1、在项目根目录…

二手车交易平台搭建重点,会用到哪些三方服务?

在搭建二手车交易平台时&#xff0c;有几个重点方面需要关注&#xff0c;并且会涉及到一些第三方服务的使用。以下是关键点和可能用到的第三方服务&#xff1a; 一、二手车交易平台搭建重点 用户友好与界面设计&#xff1a;一个成功的二手车交易平台首先需要一个直观、易用且吸…

【软件安装】(十六)双系统Ubuntu22.04引导启动菜单的默认项

一个愿意伫立在巨人肩膀上的农民...... 好学的人总是喜欢在电脑上安装双系统&#xff0c;可是安装好系统之后&#xff0c;就会出现默认启动优先级的苦恼&#xff0c;如果在Bios中设置Windows引导启动为优先启动&#xff0c;那么每次想要进如Ubuntu系统就都需要重新设置Bios。如…

LAMMPS单层石墨烯建模

本文主要介绍两种晶胞建模方式。 一、Z形晶胞 晶胞分析&#xff1a;a1沿水平x轴方向&#xff0c;a2沿垂直y轴方向。石墨烯是二维结构&#xff0c;a3取小于单层石墨烯厚度。假设石墨烯键长L1.421&#xff0c;则a13L&#xff0c;a21.732L&#xff0c;a32L&#xff08;低于3.35即…

CSAPP | Lab2-Bomb Lab详细解析

预备阶段 1.Lab要求 邪恶的邪恶博士在我们班的机器上安放了大量的“二元炸弹”。二进制炸弹是一个由一系列阶段组成的程序。每个阶段都要求你在 stdin 上键入一个特定的字符串。如果你键入了正确的字符串&#xff0c;那么这个阶段就会被拆除&#xff0c;炸弹就会进入下一个阶…

如何利用美国站群服务器通过CN2线路优化中美之间的数据传输?

如何利用美国站群服务器通过CN2线路优化中美之间的数据传输? 随着全球化进程的不断推进&#xff0c;跨国企业和国际市场的拓展对数据传输速度和稳定性提出了更高的要求。特别是对于中美之间的数据传输&#xff0c;由于地理位置遥远和网络环境不同&#xff0c;优化数据传输变得…

数据类型总结

1 引言 在计算机的世界里&#xff0c;数据类型是被人类定义出来的&#xff0c;方便人去更好地理解、辨别数据。计算机只能识别二进制数&#xff0c;不可能要求写代码时&#xff0c;只是输入一些0/1的东西。通过定义数据类型&#xff0c;可以让人和计算机更好地“沟通”&#x…

制氢机远程监控运维方案

制氢机远程监控运维方案 在当今能源转型的大背景下&#xff0c;氢能作为清洁、高效且可再生的能源载体&#xff0c;其重要性日益凸显。而制氢机作为氢能产业链中的关键设备&#xff0c;其稳定运行与高效运维对于保障氢气供应、推动氢能产业健康发展至关重要。在此背景下&#…

spring boot 基础案例【2】对多环境配置的支持更改

教程1 案例教程 案例仓库 在线编程 教程2 基础教程 教程仓库 在线编程 本案例所在的仓库 本案例所在的文档 进入正文 1.文件目录 1. Chapter12Application.java 地址&#xff1a;/chapter1-2/src/main/java/com/didispace/chapter12/Chapter12Application.java package com.…

康谋分享 | aiSim5激光雷达LiDAR模型验证方法(二)

aiSim中的LiDAR是一种基于光线追踪的传感器&#xff0c;能够模拟真实LiDAR发射的激光束&#xff0c;将会生成LAS v1.4标准格式的3D点云&#xff0c;包含了方位角、俯仰角和距离等。 aiSim能够模拟LiDAR单态&#xff08;Monostatic&#xff09;和同轴&#xff08;Coaxial&#…

PC端微信软件如何多开【详细教程】

现在工作中&#xff0c;很多小伙伴会用到两个微信。如何在PC端同时登录多个微信呢&#xff1f;赶快跟着下面的教程学起来吧 1、创建一个txt文本文件 2、输入以下代码并保存 echo offstart "" "复制粘贴微信的目标地址" 需要开几个微信就复制几行exit示例…

UTONMOS:用区块链技术拓展商业边界在哪里?

引言 大约从 2021 年Web 3 这个新概念开始受到风险基金和科技圈的普遍关注。但如果你对过去几年区块链的发展历史足够了解&#xff0c;就应该已经意识到现在的 Web 3 并不是什么新技术&#xff0c;甚至不是旧技术的进步&#xff0c;它只是一个基于区块链技术的宏大构想。 我是…

Vue3+Vant开发:个人信息管理

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,计算机系列(火速更新中) 💭 格言:种一棵树最好的时间是十年前,其次是现在 🏡动动小手,点个关注不迷路,…