【星海出品】Jenkins

在这里插入图片描述
Jenkins部署环境

基本环境:

1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。

2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。

3.maven客户端,因一般java程序是由maven工程,需要maven打包,当然也有其他打包方式,如:gradle

Jenkins安装

1.下载安装包jenkins.war;

2.在安装包根路径下,运行命令 java -jar jenkins.war --httpPort=8080,(linux环境、Windows环境都一样);

3.打开浏览器进入链接 http://localhost:8080.

4.填写初始密码,激活系统
在这里插入图片描述
5.进入插件安装选择

这里建议选择,推荐安装的插件,保证基本常用的功能可以使用。

在这里插入图片描述
选择后,进入插件安装页面

在这里插入图片描述
6.设置初始用户和密码
在这里插入图片描述
7.进入系统,安装完成
在这里插入图片描述

2.5.Jenkins基本配置

2.5.1.系统初始化配置
在这里插入图片描述
1.Configure System (系统设置)

在系统设置这里,我们只需要设置最后面的一项,配置远程服务器地址,
即我们代码最终运行的服务器地址信息,就像我们之前手动部署时使用xshell登录Linux服务器一样,
当然这里是可以配置多台远程Linux服务器的,配置完成后点击保存即可,为后面我们配置自动化部署做准备,配置如下图

在这里插入图片描述
2.Configure Global Security (全局安全配置)
a.配置用户相关的权限
在这里插入图片描述
b.配置钩子程序(当用代码更新时通知)访问权限,避免报403错误
默认是勾选上了的,这里去掉勾选
在这里插入图片描述
3.Global Tool Configuration (全局工具配置 )
a.配置maven的全局settings路径
在这里插入图片描述
b.配置jdk
在这里插入图片描述
c.配置git
在这里插入图片描述
d.配置maven的安装路径
在这里插入图片描述
4.配置必要插件

主要是检查如下这两个插件是否已安装

插件1:Publish over SSH

插件2:Deploy to container Plugin

在这里插入图片描述
到这里,我们配置一个自动化部署的的java程序(springBoot+maven+gitHub),基本必要配置就差不多了,后面配置过程中如果需要在配置。

3.Jenkins自动化部署(springBoot+maven+gitHub)项目

3.1.Jenkins服务器上创建项目和配置
大体步骤:General(基础配置)–》源码管理–》构建触发器–》构建环境–》构建–》构建后操作

1.创建一个工程
在这里插入图片描述
2.General(基础配置)
仅需填写标准部分,其他可不填写
在这里插入图片描述
3.源码管理
在这里插入图片描述
上图中点击“添加”按钮添加一组账号和密码

在这里插入图片描述
4.构建触发器
在这里插入图片描述
如上图:当前项目的回调地址为:

http://localhost:8080/job/jenkinsSpringBootDemo/build?token=token_demo2

只要执行这个地址(在浏览器上访问改地址),该项目就会发起一次构建项目,即拉取代码打包部署操作,

在实际中,是由git服务器回调改地址,在后面讲git服务器配置时详细讲解 ,

值得注意的是,如果你是学习测试,使用的是GitHub服务,要确保你的回调地址已经试外网映射过的,即往外网可以访问

5.构建环境(无需配置)

6.构建
在这里插入图片描述
7.构建后操作

构建后操作的意思是,jar打包好后,要将jar发送到哪里去,发送后去和启动等

这里需要提前在需要部署的服务器上配置好路径,写好启动和停止项目的脚本,并设置为可以执行的脚本,

其实就是我们平时在Linux上手动部署项目操作的脚本

在这里插入图片描述
案例中给出的stop.sh脚本如下:
stop

#!/bin/bash
echo "Stop Procedure : demo2-0.0.1-SNAPSHOT.jar"
pid=`ps -ef |grep java|grep demo2-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
then
kill -9 $pid
fi

start

#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.8.0_131
echo ${JAVA_HOME}
echo 'Start the program : demo2-0.0.1-SNAPSHOT.jar'
chmod 777 /home/ldp/app/demo2-0.0.1-SNAPSHOT.jar
echo '-------Starting-------'
cd /home/ldp/app/
nohup ${JAVA_HOME}/bin/java -jar demo2-0.0.1-SNAPSHOT.jar &
echo 'start success'

到此,Jenkinds服务器配置完成,接下来我还有要配置Linux服务器和Git服务器。

3.3.GitHub服务器配置
在GitHub服务器上的指定项目里面配置上文中提到的回调地址

特别注意:为了保证回调地址网可以使用,

我已经将地址:http://localhost:8080/job/jenkinsSpringBootDemo/build?token=token_demo2,

通过花生壳进行外网映射为:http://zhishidi.imwork.net/job/jenkinsSpringBootDemo/build?token=token_demo2

所以,下面配置的是外网映射地址。
在这里插入图片描述
到这里所有配置搞定,只需修改代码,提交到git,然后访问程序看是否生效.

4.测试

1.测试代码
在这里插入图片描述
2.提交代码到git,触发构建

3.在GitHub服务器上去看,是否已经触发
在这里插入图片描述
4.在Jenkins的控制台查看是否,正在构建
从下图中可以看出,正在构建
在这里插入图片描述
5.查看当次构建的控制台日志
在这里插入图片描述
6.查看Linux服务器,是否上传代码
在这里插入图片描述
7.在Linux上使用命令jps,查看是否启动
在这里插入图片描述
8.浏览器上访问,看是否能用
在这里插入图片描述
说明,已经正常启动可以使用。

9.再次确认是否能自动化部署
修改代码,重新提交代码,循环1到8步查看。
如果测试结果是你预期的,那么自动化部署成功。

5.1.总结

自动化部署Jenkins,作为一款工具,有着非常强大的功能,

上面我们只是讲了生产上做Java自动化部署的一个主要流程,

官方文档:https://jenkins.io/zh/doc/

相关资料

1.案例中的源码地址:https://github.com/bangbangw/demo01.git

2.官方文档:https://jenkins.io/zh/doc/

3.博客配套视频:在线学习

转载于:https://www.cnblogs.com/wfd360/p/11314697.html

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL Developer管理RESTful 服务

RESTful 服务依赖于ORDS(Oracle REST Data Services),所以在进行本实验前,请先确认数据库服务器上的ORDS服务已启动: $ systemctl status ords ● ords.service - Oracle REST Data ServicesLoaded: loaded (/etc/sys…

YOLOv10(1):初探,训练自己的数据

目录 1. 写在前面 2. 值得关注的点 3. 训练自己的数据集 4. 阅读代码的小建议 1. 写在前面 很多人YOLOv9还没有完全研究透,YOLOv10出来了。 惊不惊喜,意不意外! 据论文里提到,YOLOv10就是为了加速推理,在保证精度的…

天锐绿盾|防止源代码泄露系统,如何防止开发部门源码外泄?

#源代码防止泄露# 天锐绿盾是一款专为企业设计的数据安全软件,尤其擅长防止开发部门的源代码外泄,它通过一系列综合性的安全策略和技术手段实现这一目标。 PC地址: https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5d…

nesting in wrf

Choices for Nesting are:0 no nesting (only available for serial and smpar) 0. no nesting (only available for serial and smpar)1. basic2. preset moves preset moves3. vortex following • default is option 0 for serial/smpar, 1 for dmpar • smpar Shared Mem…

Linux环境---在线安装jdk

Linux环境—在线安装jdk 一、使用步骤 1.安装环境 JDK版本:1.8 1.1 建立存放软件的目录 注意:此处本人是将需要按照的软件存放在directory目录下,可根据实际情况调整接收路径。 命令如下: mkdir directory2.安装jdk 2.1 建…

Paperless-Ngx文档管理系统结合内网穿透实现随时远程搜索查阅文本

文章目录 前言1. 部署Paperless-ngx2. 本地访问Paperless-ngx3. Linux安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 前言 Paperless-ngx是一个开源的文档管理系统,可以将物理文档转换成可搜索的在线档案,从而减少纸张的使…

VS code上创建Vue项目详细化教程2-配置并创建Vue项目

目录 1. 环境准备 1.1 Node.js环境配置 1.1.1 安装Node.js 1.1.2 Node配置全局安装目录: 1.2 安装Vue-cli 2. 工程化Vue项目创建 2.1 命令行形式 2.2 UI 界面(我们此处采用UI模式) 2.2.1 在文件目录下终端输入 2.2.2 创建新项目 2…

Ansys Mechanical|为了提高结果精度而提高网格划分质量

一.高质量网格划分的要求 1. 一个好的网格划分可以捕获到所有重要几何细节。 2. 差的网格质量会导致收敛困难或者对物理场的描述不佳。 注:收敛困难有助于突出网格相关的误差。但是,如果结果不正确地收敛,则会在应用中导致各种…

Vuforia AR篇(六)— Mid Air 半空识别

目录 前言一、什么是Mid Air?二、使用步骤三、示例代码四、效果 前言 增强现实(AR)技术正在改变我们与数字世界的互动方式。Vuforia作为先进的AR开发平台,提供了多种工具来创造引人入胜的AR体验。其中,Mid Air功能以其…

纷享销客集成平台(IPaaS)解决方案

针对传统对接方式中的痛点,集成平台提炼了一套成熟的解决方案和配套工具。 痛点1:编码工作量大。 每个功能点,和众多的容错分支,都需要逐行编码实现。日志打少了影响问题排查,打多了浪费大量存储。 集成…

Pinia的安装及使用

一、pinia是什么? Store (如 Pinia) 是一个保存状态和业务逻辑的实体,它并不与你的组件树绑定。换句话说,它承载着全局状态。它有点像一个永远存在的组件,每个组件都可以读取和写入它。它有三个概念,state、getter 和 …

【调试笔记-20240602-Linux-在 OpenWRT-23.05 上配置 frps 与 frpc 之间使用 TLS 进行传输】

调试笔记-系列文章目录 调试笔记-20240602-Linux-在 OpenWRT-23.05 上配置 frps 与 frpc 之间使用 TLS 进行传输 文章目录 调试笔记-系列文章目录调试笔记-20240602-Linux-在 OpenWRT-23.05 上配置 frps 与 frpc 之间使用 TLS 进行传输 前言一、调试环境操作系统:O…

hadoop疑难问题解决_NoClassDefFoundError: org/apache/hadoop/fs/adl/AdlFileSystem

1、问题描述 impala执行查询:select * from stmta_raw limit 10; 报错信息如下: Query: select * from sfmta_raw limit 10 Query submitted at: 2018-04-11 14:46:29 (Coordinator: http://mrj001:25000) ERROR: AnalysisException: Failed to load …

QLocalSocket和QLocalServer

一步一步来吧,不可能一口吃成一个胖子. 看不懂大块的代码,至少可以看懂一个小demo,一小部分代码,小demo看的多了,慢慢也就可以看懂更多代码啦.加油! 不要着急啦! QLocalServer和QLocalSocket单进程和进程通信 - wjbooks - 博客园 (cnblogs.com) QLocalSocket 1.生成随机数 Q…

数字智能数字人直播带货软件系统 实现真人形象的1:1克隆 前后端分离 带完整的安装代码包以及搭建教程

系统概述 数字智能数字人直播带货小程序源码系统是一套集人工智能、3D建模、云计算等技术于一体的综合性解决方案。该系统通过深度学习算法,能够实现对真人形象的精准捕捉和1:1克隆,使数字人在直播过程中呈现出与真人无异的表现力。同时,系统…

超级搜索神器来了!比Kimi更好用的Perplexity AI,让你秒变搜索达人!

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

java——顺序表

前言:顺序表是线性表的一种,它是较于数组更加灵活的一种储存方式。线性表通常是逻辑上是连续的一条直线,但在物理上不是连续的。java中已经实现好了一个顺序表,搭配泛型可以支持各种类型的使用,下面就来介绍该如何使用…

AI绘画揽活新中式室内设计,能不能让你一见“粽”情?

端午节即将来临,计划节前完成的图赶出来了吗?别着急,可以找个AI绘画工具做帮手,让你在短时间内完成高质量的设计。 恰逢端午佳节,相比其他装修风格,新中式显然与端午节更般配,那么我们就用AI绘画的新中式风…

目标检测-AnyLabeling标注格式转换成YOLO格式

Anylabel可以极大的增加数据的标注效率,但是其标注格式如何能转换成YOLO标注格式,具体内容如下所示。 关于AnyLabeling的其它详细介绍如下链接所示 https://blog.csdn.net/u011775793/article/details/134918861 Github链接 https://github.com/vietanhd…

单点登录(SSO)前端怎么做

单点登录(SSO)前端怎么做 本文介绍单点登录(SSO)是什么,还有就是前端怎么做。 单点登录(SSO)是什么 单点登录(SSO,Single Sign On),是在企业内部…