背景
在代码不断修改的过程中,去服务器部署,需要人为的重复工作,所以用jenkins去代替人力,去服务器上面部署最新的代码,提高工作效率,让测试等不懂部署方式的人,也可以去根据最新代码部署项目。该介绍包括前后端项目的部署。
需要先安装好Jenkins
我之前有一篇安装Jenkins文章,有需要的可以去看一下。
插件安装
系统管理
插件管理
插件查找,找到后勾选左下角安装
中文设置插件
安装好后去系统管理中设置
找到刚刚的插件输入zh_CN,点击应用就可以了,如果不行,进行jenkins的重启。
Maven插件
Jenkins部署前清空原有workspace
输入workspace cleanup
重启Jenkins后就可以看到对应功能
安装git插件
部署java流水线(以码云为例)
全局配置
maven配置
Jdk设置
Git设置
Maven
Git权限配置
Liunx生成公钥
# 中间内容随意,只是作为名词管理
ssh-keygen -C "xxxxx@xxxxx.com"
查看公钥
cat ~/.ssh/id_rsa.pub
Gitee添加公钥
首次需要确认并添加主机到本机SSH可信列表
ssh -T git@gitee.com
设置后端流水线
命名流水线
根据流程去命名流水线,创建一个maven项目的流水线。
选择丢弃版本
设置git地址和分支
一定上面对应公钥的账号一定要有下面代码库的权限,否则会报权限异常。
构建触发器
这次选择的是手动创建,也可以在下面选择push代码时,进行流水线构建。
构建环境
Build
pom.xml
clean package -Dmaven.test.skip=true -Ptest
Post Steps
其中shell脚本,记得一定要将项目启动脚本提前放入到对应工作目录中
# jenkins中存放项目资源的位置/var/lib/jenkins/workspace/流水线名称/TARGET_DIR位置
TARGET_DIR=demo
# 项目的工作目录,放jar包,日志和启动脚本
WORKDIR=/export/项目名称/backend
JARNAME=项目jar包名称.jar
TMP_JARNAME=$JARNAME".tmp"
cp $TARGET_DIR"/"$JARNAME $WORKDIR/$TMP_JARNAME
cd $WORKDIR
echo "当前工作路径: "`pwd`
mv $JARNAME $JARNAME.$(date +%Y%m%d%H%M).bak || true
mv $TMP_JARNAME $JARNAME
./start.sh
启动流水线
找到要启动的项目
启动构建
下面生成新的构建记录
项目构建成功
其中有编译过程,将旧版本jar包改名和运行启动脚本。
构建前端代码流水线
前置要求
先在服务器上面安装nvm
用来管理nodejs
下载nvm安装包
安装包地址
解压nvm
mkdir -p /root/.nvm
tar -zxvf nvm-0.38.0.tar.gz -C /root/.nvm
配置环境
打开 ~/.bashrc
gedit ~/.bashrc
末尾添加下面语句
export NVM_DIR="$HOME/.nvm/nvm-0.38.0"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# This loads nvm bash_completion
# nodejs下载更换淘宝镜像
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
启动配置
source ~/.bashrc
安装nginx
nginx安装教程
在nginx.conf配置文件中进行配置。
server {
listen 8888;
server_name localhost;
location / {
alias /export/项目名称/fontend/dist/;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
命名流水线
General
源码管理
构建环境
构建
#!/bin/bash -ilex
# 工作目录
WORK_DIR=/export/项目目录fontend
NODE_VERSION=16.17.0
BUILD_PROFILE=build:stage
# 访问后端接口
URL=http://ip:端口号
PROFILE_FILE=.env.staging
if [ -n "$URL" ]; then
echo "VITE_APP_BASE_API = '$URL'" >> $PROFILE_FILE
fi
nvm use $NODE_VERSION
npm install --registry=https://registry.npm.taobao.org
npm run $BUILD_PROFILE
zip -r dist-new.zip dist
cp dist-new.zip $WORK_DIR
cd $WORK_DIR
mv dist.zip dist.zip.$(date +%Y%m%d%H%M).bak || true
mv dist-new.zip dist.zip
rm -rf dist
unzip dist.zip
启动构建
构建成功
可能出现的问题
maven版本问题
之前安装的时候,使用了3.9.1版本的maven出现问题后,定位问题,发现是maven版本太高的问题,替换为3.8.3版本后,问题消失
nvm版本问题
问题表现
问题解决
用nvm安装对应版本的nodejs
# 安装对应版本的nodejs
nvm install 16.17.0
nvm安装
下载
wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.38.0.tar.gz
解压
mkdir -p /root/.nvm
tar -zxvf v0.38.0.tar.gz -C /root/.nvm
配置环境
vim ~/.bashrc
末尾追加文章来源:https://www.toymoban.com/news/detail-633374.html
export NVM_DIR="$HOME/.nvm/nvm-0.38.0"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# This loads nvm bash_completion
# nodejs下载更换淘宝镜像
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
配置生效
source ~/.bashrc
查看nvm版本
nvm -v
文章来源地址https://www.toymoban.com/news/detail-633374.html
到了这里,关于Jenkins部署构建项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!