windows安装jenkins运行发布java springboot项目到linux服务器

news2025/1/16 15:40:21

文章目录

  • 背景
  • 安装jenkins
  • 安装插件
    • 安装maven插件
    • Publish over SSH
  • 系统配置
    • Global properties
    • Publish over SSH
  • 全局工具配置
    • 设置jdk
    • 设置maven
    • 设置git
  • 构建java maven项目
    • freestyle 或者maven都可以
    • Discard old builds
    • git命令报错Host key verification failed
    • 每次构建前清理构建环境
    • Build
    • Post Steps

背景

由于服务器上运行jenkins很卡,所以对于小公司而言,就不在服务器上跑jenkins,这两天公司正好有一台闲置的windows主机。就在这个上面尝试安装jenkins来进行自动打包,并且发布到linux服务器。

安装jenkins

安装步骤就不多说了,网上一大堆。

安装插件

在这里插入图片描述

安装maven插件

在这里插入图片描述

Publish over SSH

在这里插入图片描述

系统配置

在这里插入图片描述

Global properties

配置javahome maven home
在这里插入图片描述
在这里插入图片描述

Publish over SSH

发布到远程服务器的时候要用,涉及到密钥,我就不截图了。
这里遇到一个巨坑,测试连接的时候报了:

jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@60373f7]

在这里插入图片描述
因为我们生成密钥的openssh的版本过高的原因,而版本在检验密钥时还不支持这种格式。
通过指定格式来生成

ssh-keygen -m PEM -t rsa -b 4096

生成后阿里云ecs感觉还不奏效,可能是我设置了阿里云密钥对才能访问,绑定以后要重启才能生效
在这里插入图片描述
也可以试试把公钥写到.ssh 文件夹下的:authorized_keys

全局工具配置

在这里插入图片描述

设置jdk

在这里插入图片描述

设置maven

在这里插入图片描述

设置git

在这里插入图片描述

构建java maven项目

freestyle 或者maven都可以

在这里插入图片描述
freestyle 或者maven都可以,如果pipeline后续会讲如何使用他的语法
在这里插入图片描述

Discard old builds

我选择保留5天数据,最大保存10次build。我觉得够了,不需要更多了。
在这里插入图片描述

git命令报错Host key verification failed

处理git的时候遇到了Host key verification failed,Windows安装的jenkins,登录账户打开git bash,执行git pull等一系列命令,是可以成功执行,但是在Jenkins的网页中执行git的命令时,提示

d:\src>git pull 
Host key verification failed.
fatal: Could not read from remote repository.
 
Please make sure you have the correct access rights
and the repository exists.

原因:Jenkins网页登录时,ssh连接使用的是Jenkins自身的账户,并不是我们登录电脑所使用的的账户,该账户下并没有ssh连接所需要的rsa文件,

解决方法:

成功执行git pull等命令的账户,在C:\Users\xxxxxx.ssh目录下(xxxxxx是登录电脑的用户名,不是git的用户名),会有id_rsa,id_rsa.pub,known_hosts文件,把这3个文件拷贝到C:\Windows\System32\config\systemprofile.ssh目录下,再执行jenkins就OK了
在这里插入图片描述

每次构建前清理构建环境

在这里插入图片描述

Build

我加上了-DskipTests 参数,不然打包会跑test,然后报错。
在这里插入图片描述

Post Steps

打包完成后将文件发送到远程服务器
在这里插入图片描述
在这里插入图片描述
sh脚本如下:

runDir="/opt/running/wms"
warName="ruoyi-admin.jar"
targetWarName="wms.jar"
logDir="/data/logs/wms"
profileName="prod"
tpid=`ps aux | grep ${targetWarName} |grep -v grep |awk '{print $2}'`
if [ ! -n "$tpid" ]; then
        echo "# tpid is null"
else
        kill -9 $tpid
                echo "# kill -9 $tpid"
fi

if [ -f "$warName" ]; then
        if [ -f "$runDir/$targetWarName" ]; then
                        current=`date "+%Y%m%d_%H%M%S"`
                        mv $runDir/$targetWarName $runDir/history/$targetWarName"$current"
                        echo "# mv $runDir/$targetWarName $runDir/history/$targetWarName$current"
        fi
        mv $warName $runDir/$targetWarName
        echo "# mv $warName $runDir/$targetWarName"
fi
nohup  java -jar -Xmx512m $runDir/$targetWarName --spring.profiles.active=$profileName>/dev/null 2>&1 &
echo 'start ...'
echo "tail -f $logDir/wms.current.log"

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

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

相关文章

可观测性之Log4j2优雅日志打印

可观测性之Log4j2优雅日志打印# 简介 对于Log4j2大家应该都不是很陌生,听说最多的应该是2021年年底出现的安全漏洞了,不过最让大家头痛的应该不仅仅是这个安全漏洞的处理,安全漏洞通过升级最新的依赖版本即可快速解决,平时在使用…

基于Java+SpringMvc+vue+element实现上海汽车博物馆平台

基于JavaSpringMvcvueelement实现上海汽车博物馆平台 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源…

C语言.表白神器.爱你之心之闪耀

前言 爱你之心之闪耀,这个名字比较沙雕哈哈哈。。。 爱你之心之闪耀前言爱心函数的选取爱心函数1爱心函数2简单爱心粒子发射原理爱心结构一些宏初始化init创建若干爱心并初始化setHeart展示爱心showHeart爱心变大modifyHeart设置音乐主函数Love.hLove.cpp祝有情人&a…

【有营养的算法笔记】一文轻松学会高精度算法(加减乘除)

👑作者主页:进击的安度因 🏠学习社区:进击的安度因(个人社区) 📖专栏链接:有营养的算法笔记 文章目录一、前言二、高精度加法1、思想及模板2、代码实现三、高精度减法1、思路及模板2…

电脑一键重装系统卡在正在准备就绪怎么办

最近有些用户想要给电脑换新的系统使用,选择一键重装工具重装,但结果卡住了,小白一键重装系统卡在正在准备就绪怎么办?下面小编就教下大家小白一键重装系统卡在正在准备就绪怎么办的解决办法。 工具/原料: 系统版本:…

七 近代史案例欣赏

首先打开我们的编译器,EgretWing,新建一个Egret项目。 新建好后如下图: 主要文件夹介绍 libs:包类文件夹 resource:资源文件夹 src:编写代码文件夹 template:前端文件夹 代码编写 1 打开src中Main.ts文件找到crea…

Scala中的协变点、逆变点、不变点如何确定?

阅读《scala编程》时,我们知道了类的类型参数是可以型变(variance)的。型变包含以下三种: 协变(convariant):如果S是T的子类型,则C1[S]也是C1[T]的子类型,则称C1在类型参…

leetcode 208. 实现 Trie (前缀树)【字典树(前缀树)的介绍与思路整理】

题目 Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象。…

HCL Notes/Domino 12.0.2版本正式发布

大家好,才是真的好。 之前代号为多瑙河版本的Notes/Domino产品,昨天晚上正式露出了神秘的面纱,版本号也正式定为12.0.2。从版本上来看,是12.0版本的小版本,但从功能和特性上来说,这完全就是一个大版本。 …

Duboo优雅关闭(附源码分析)

Dubbo优雅关闭 1. 关闭有什么问题 当服务提供方要上线的时候,一般是通过部署系统完成实例重启。在这个过程中,服务提供方的团队并不会事先告诉调用方他们需要操作哪些机器,从而让调用方去事先切走流量。而对调用方来说,它也无法…

LeetCode刷题复盘笔记—一文搞懂动态规划之72. 编辑距离问题(动态规划系列第四十一篇)

今日主要总结一下动态规划的一道题目,72. 编辑距离 题目:72. 编辑距离 Leetcode题目地址 题目描述: 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&…

FME对调查云平台完成变更调查照片的批量迁移

目录 前言 二、实际步骤 1.准备基础数据 2.模拟登录 3.获取图斑标识码 4.获取图形信息 5.通过空间位置关系过滤不合格照片 5.通过深度学习模型过滤照片特征错误图斑 6.照片迁移 总结 前言 又到了一年一度国土变更调查的苦日子,因为项目规则原因,…

【架构设计】你的应用该如何分层呢?

前言 最近review公司的代码,发现现在整个代码层级十分混乱,一个service类的长度甚至达到了5000多行。而且各种分层模型DTO、VO乱用, 最终出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动一处就牵一发而动全身等问题。 我们在吸取了阿里…

spring之aop底层实现

1.aop之ajc增强 什么是ajc增强? ajc是aop的另外一种实现, 通过aspectj编码器来改动class源文件实现aop 2.aop之agent增强 什么是agent增强? agent是aop的另外一种实现,是通过类加载时改动class类 3.aop之proxy增强-jdk代理 …

Mac系统入门之电脑卡死怎么办

当你兴冲冲的从菜鸡驿站提回来一台新的电脑,你欣喜若狂,迫不及待的拆开快递箱,里面是一台苹果电脑,这时,你不禁抓耳挠腮:Mac系统怎么用啊? 下面,这篇专栏教你如何入门Mac系统 https://blog.csdn.net/cyyyyds857/category_12163999.html –––––前言 你正兴致勃勃的写着…

mysql中字符串拼接、填充和切片

一、本文主要结构 在编程过程往往会遇到,多个字符串需要进行拼接或者填充固定值或者截取部分数据,本文主要实战下面四个函数 concat(str1, str2,…):字符串进行拼接 lpap():左边填充 rpad(&…

【C语言】指针经典题分析

🏖️作者:malloc不出对象 ⛺专栏:《初识C语言》 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、指针与数组经典题解析二、经…

创新的概念、设计和生产鞋类和鞋类软件丨Jevero及Botcha 3D功能简介

Jevero功能简介 重新定义鞋类发展 Jevero是图案工程师、鞋类开发人员和设计师的优秀支持。从设计到生产都在一个工具中完成。 产品功能及优势 01、更快的开发,缩短上市时间 Jevero使您的图案工程师、鞋类开发人员、工业设计师之间能够进行协作。利用Rhino平台产…

两数相加 java语言

leetcode地址:两数相加描述:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除…

DevData Talks | 张乐、茹炳晟、应阔浩、任晶磊:研发效能实践的2022年复盘和展望

跌宕起伏的 2022 年已经成为过去时。在这一年,我们既看到外部环境变幻莫测,也看到研发效能行业沉下心来稳步发展,从宏大的概念和价值,转向具体的问题,和务实、可行动的解决方案。 在新一年的开端上回望,20…