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

jenkins自动化部署安装

一、准备工作

1、安装jdk
# 1、下载准备jdk包(也可以用docker安装)
wget ...
# 2、直接解压到,无需安装
unzip ...
2、安装maven
# 1、下载准备maven压缩包
wget ...
# 2、直接解压,无需安装
unzip ... 
# 3、修改setting.xml,修改localRepository和MIRROR镜像地址
vi setting.xml
3、修改环境变量
# 修改环境变量
vi /etc/profileexport JAVA_HOME=/app/jdk1.0export MAVEN_HOME=/app/maven-3export PATH=$JAVA_HOME/bin:$PATH:$MAVEN_HOME/bin
source /etc/profile # 配置生效
# 查看是否生效
java -v
mvn -version
3、安装gitlab
  • gitlab可以安装到另外一台对外服务或者直接使用github或者gitee

4、安装jenkins

二、配置Jenkins

配置JDK和Maven
# 1、全局工具配置# 1.1、新增JDK配置(主要配置JAVA_HOME)# 1.2、新增MVN配置(主要配置MVN_HOME)
# 2、全局属性配置# 2.1 配置java_home,mvn_home,path等键值对
构建一个Maven项目

shell脚本
#!/bin/bash
set -e
export LANG=zh_CN.GB2312
# 服务器用户名
user="root"
# 服务器IP (xxx.xx.xx.xxx是指服务器ip填写即可)
hostname="xxx.xx.xx.xxx"
# 测试环境部署路径
target_dir="/home/repair"
# 前端包压缩文件
src_dist="dist.zip"
# 后端包文件名
src_jeecg="bmzy-modules-2.4.0.jar"
# jenkins工作路径
jenkins_workspace="/root/.jenkins/workspace/test_job"echo "编译前端包"
cd ${jenkins_workspace}/web
yarn install
yarn run build
zip -r dist.zip dist/
chmod 755 dist.zip
cd ..if [ -e $src_dist ]thenrm -rf dist.zipelseecho "文件不存在,执行下一步"
ficd web/
mv dist.zip ${jenkins_workspace}
echo "前端包编译完成"echo "开始编译后端代码"
cd ${jenkins_workspace}/app
mvn clean package  install -Dmaven.test.skip=true
mv ${jenkins_workspace}/app/bmzy-modules/target/bmzy-modules-2.4.0.jar ${jenkins_workspace}
cd ${jenkins_workspace} && chmod 755 ${src_jeecg}
echo "编译后端代码完成"echo "将前端压缩包上传至xxx主机"
cd ${jenkins_workspace}
scp ${src_dist} ${user}@${hostname}:${target_dir}
echo "将后端压缩包上传至xxx主机"
cd ${jenkins_workspace}
scp ${src_jeecg} ${user}@${hostname}:${target_dir}/libecho "登录xxx主机起服务"
ssh ${user}@${hostname} << remotessh
source .bash_profile
cd ${target_dir}/bin
sh dist_reload.sh
sleep 2
sh start-jeecg.sh
echo "服务启动完毕"
exit

参考:

  • https://www.jianshu.com/p/2c445be71cd9
  • https://blog.csdn.net/xiaoqiang65/category_11455039.html
  • https://blog.csdn.net/weixin_45048662/article/details/126620022
http://www.lryc.cn/news/158327.html

相关文章:

  • 如何调用Zabbix API获取主机信息
  • 批量执行redis命令总结
  • 命令行git联网失败,但是实际可以联网
  • 网络编程套接字,Linux下实现echo服务器和客户端
  • java+ssh+mysql智能化办公管理系统
  • 网络层抓包tcpdump
  • QT之形态学操作
  • 15、监测数据采集物联网应用开发步骤(11)
  • Pygame中Trivia游戏解析6-2
  • java 实现命令行模式
  • A - Orac and Models(最长上升子序列——加强版)
  • 【python手写算法】逻辑回归实现分类(含公式推导)
  • 【2023高教社杯数学建模国赛】ABCD题 问题分析、模型建立、参考文献及实现代码
  • yum安装mysql5.7散记
  • DNS解析
  • 从jdk8 升级到jdk17的问题总结
  • 一百七十二、Flume——Flume采集Kafka数据写入HDFS中(亲测有效、附截图)
  • pnpm 升级
  • 有关使用HttpServletRequest的Cookie的设置和获取
  • 关于 Nginx 的哪些事
  • 插入排序——希尔排序
  • C语言之初阶总结篇
  • Android签名查看
  • Educational Codeforces Round 3
  • Docker Compose常用命令
  • C++——智能指针
  • CVE-2023-3836:大华智慧园区综合管理平台任意文件上传漏洞复现
  • LAMP搭建WordPress
  • 【数学建模竞赛】预测类赛题常用算法解析
  • OFDM 系统在 AWGN 信道下对不同载波频率偏移 (CFO) 的 BER 灵敏度研究(Matlab代码实现)