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

Jenkins持续集成-快速上手

Jenkins持续集成-快速上手

  • 注:Jenkins一般不单独使用,而是需要依赖代码仓库,构建工具等

搭配组合:Git+Gitee(GitHub、GitLab)+Maven+Jenkins

前置准备

常见安装方式:

  1. war包
  2. Docker容器实例(推荐,方便快捷)

一、Docker安装Jenkins教程

由于Jenkins需要依赖Git、Maven环境,因此需要现在服务器上安装好这两、然后将其挂载到容器内部即可。

(因为容器内部是没有Git、Maven,我们通过外部挂载形式,使其有这些依赖环境。)

git安装

yum install -y git

maven安装

官网下载linux版的maven,配置镜像、上传linux服务器解压即可。

宝塔先安装Docker,安装完成后、直接运行如下命令(如果镜像不存在、会自动拉取然后运行起来):

#Jenkins默认端口:8080  ,剩下的都是冗余端口====可自定义。docker run -d -p 8080:8080  -p 8090:8090   -p 9090:9090     -p 50000:50000 -v  /usr/local/apache-maven-3.8.6:/usr/local/maven  -v /usr/bin/git:/usr/local/git   -v /etc/localtime:/etc/localtime --name Jenkins jenkins/jenkins进入容器实例内部:docker exec -it Jenkins /bin/bash

二、进入Jenkins安装插件

#maven集成插件
Maven Integration plugin
#实现远程触发器授权(非登录状态触发)
Build Authorization Token Root Plugin
#发布生产服务器插件
Publish Over SSH

三、清理脚本

前置脚本
在这里插入图片描述

#!/bin/bashappname=$1rm -rf  "${appname}*.jar"#获取传入的参数
echo "arg:$1"#获取正在运行的jar包pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`echo $pid#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
#使用-z 做空值判断thenecho "$appname not started"elsekill -9 $pidecho "$appname stoping...."check=`ps -ef | grep -w $pid | grep java`
if [ -z $check ];thenecho "$appname pid:$pid is stop"elseecho "$appname stop failed"fifi

后置脚本(部署脚本)

#!/bin/bash
appname=$1
deploy_port=$2
echo "部署项目:${appname}*.jar  ,端口:${deploy_port}"
nohup java -jar -Dserver.port=${deploy_port}  /root/${appname}*.jar >test.log 2>&1 &

在这里插入图片描述

四、运行脚本

nohup java -jar -Dserver.port=9876 /root/test-jenkins-0.0.1-SNAPSHOT.jar >test.log 2>&1 &

五、pipline流水线(核心)

略。

http://www.lryc.cn/news/117793.html

相关文章:

  • 查看linux 所有运行的应用和端口命令
  • Maven安装与配置,Eclipse配置Maven【图文并茂的保姆级教程】
  • 利用XLL文件投递Qbot银行木马的钓鱼活动分析
  • 2023CNSS——WEB题解(持续更新)
  • Unity之ShaderGraph 节点介绍 数学节点
  • springboot mongo 使用
  • 如何使用appuploader制作apple证书​
  • Promise详细版
  • v-for循环生成的盒子只改变当前选中的盒子的样式
  • Spring Data JPA源码
  • 如何防止CSRF攻击
  • linuxARM裸机学习笔记(7)----RTC实时时钟实验
  • NSS [UUCTF 2022 新生赛]ez_upload
  • 【操作系统】操作系统知识点总结(秋招篇)
  • 篇十九:迭代器模式:遍历集合
  • 浅谈JVM中的即时编译器(Just-In-Time compiler, JIT)
  • Android 13 Launcher——长按图标弹窗内容修改以及小组件等隐藏起来
  • 又一个不可错过的编程大模型来了让你惊呼“码农人生”不虚此行
  • 【Express.js】集成SocketIO
  • 为树莓派Pico配置交叉编译环境和工具链arm-none-eabi-gcc时可能会遇到的错误以及解决方案
  • Yum 部署K8S集群
  • 初阶C语言-操作符详解(下)
  • reposync命令——下载yum仓库中全部的包到本地
  • LC-杨辉三角
  • Golang空结构体struct{}的作用是什么?
  • 自然语言处理从入门到应用——LangChain:提示(Prompts)-[示例选择器(Example Selectors)]
  • 【实战项目】c++实现基于reactor的高并发服务器
  • Docker部署ElasticSearch7
  • 【算法|数组】滑动窗口
  • 笙默考试管理系统-MyExamTest----codemirror(2)