首页 > 其他分享 >Jenkins+SpringCloud(多模块)+Vue项目详细配置

Jenkins+SpringCloud(多模块)+Vue项目详细配置

时间:2022-08-30 16:13:18浏览次数:62  
标签:Vue NAME SpringCloud APP echo start Jenkins carbon

一、Jenkins安装及所需插件安装

      安装过程略。

      我这用到工具包括JDK、Git、Maven、NodeJS:可以选择自行在服务器安装,也可以通过Jenkins自动安装,位置在系统管理 》全局工具配置

      

 

 

 

 

      安装的插件包括 NodeJS Plugin、Publish Over SSH:通过 系统管理 》插件管理  在线搜索安装,无需重启。

     

 

 

 

 

二、微服务后端模块配置

     1、新建任务

          填入任务名称,选择构建一个maven项目,如果没有该选项可能是插件没有安装导致,也可以选择构建一个自由 风格得软件项目

     

 

 

 

 

     2、构建打包

     

   

   

   

    clean package -pl carbon-modules/carbon-file -am -Dmaven.test.skip=true

     

 

  3、远程部署

    部署方式可以根据实际情况灵活调整:如果Jenkins和系统部署为一台服务器,则无需远程传输,将打包好的文件移动或复制到指定的目录运行即可;

如果不是同一台服务器,则一般需要将打包好的资源文件传输到目标服务器并通过命令启动运行。

    下面截图展示远程部署的方式,基本适用于大多数场景。

 

   配置SSH服务器:系统管理 》系统配置

   

     

     

   

source /etc/profile
BUILD_ID=DONTKILLME
cd /opt/carbon/backend/command
sh carbon-modules-file.sh restart 9302
carbon-modules-file.sh
#!/bin/bash
#配置jar名称
APP_NAME=carbon-modules-file
SPACE=xxxxx
PORT="$2"

#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
exit 1
}

#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME.jar|grep -v 'grep'|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}

#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running, pid=${pid} ."
elif [ ${PORT} ]; then
echo "port is ${PORT}"
nohup java -Dserver.port=${PORT} -Xms512m -Xmx512m -jar ../${APP_NAME}.jar --spring.profiles.active=prod --spring.cloud.nacos.discovery.namespace=${SPACE} --spring.cloud.nacos.config.namespace=${SPACE} > ../logs/${APP_NAME}.log &
echo "${APP_NAME} start success"
else
nohup java -Xms512m -Xmx512m -jar ../${APP_NAME}.jar --spring.profiles.active=prod --spring.cloud.nacos.discovery.namespace=${SPACE} --spring.cloud.nacos.config.namespace=${SPACE} > ../logs/${APP_NAME}.log &
echo "${APP_NAME} start success"
fi
}

#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}

#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running, Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}

#重启
restart(){
stop
start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac

注:由于使用了nacos作为了注册配置中心,命令中增加了相关设定,可自行根据项目情况修改;

      命令文件中换行符一定确定是Unix(LF)格式;

      将sh文件上传到服务器目录后,增加可执行权限(chmod u+x *.sh)。

 

   

 4、复制构建

 

 

三、系统前端(Vue)配置

    源码管理等略,参考后端配置。

   

   

   

   

cd /data/iot/tomcat_jenkins/data/workspace/carbon-ui/carbon-ui
node -v
npm -v
npm install
npm run build:prod
cd dist
rm -rf carbon-ui.tar.gz
tar -zcvf carbon-ui.tar.gz *

   

   

cd /data/carbon/front/
tar -xzvf carbon-ui.tar.gz -C /data/carbon/front/
find /data/carbon/front/ -name "*.tar.gz" -exec rm -rf {}  \;
echo '发布成功!'

  构建完成后查看日志,输出以下内容即为成功

 

 

四、总结

     随着Docker、K8S、服务网格(ServiceMesh)等新型部署管理方式的兴起,Jenkins等工具已逐渐是CI/CD的较为过时的管理方式,

但是对于中小型开发团队且系统部署规模及硬件资源都相对较小的情况下,为了减轻开发运维过程中频繁的版本迭代及多模块多服务器部署带来的负担,

提高生产运维效率,减少因人为过失导致的线上生产事故,选择Jenkins来搭配代码管理工具GitLab及项目管理工具禅道、Jira等作为自动化构建部署管理方式,

也不失为一个过渡性又相对合理的折中选择。    

 

标签:Vue,NAME,SpringCloud,APP,echo,start,Jenkins,carbon
From: https://www.cnblogs.com/hardrockwu/p/16638974.html

相关文章

  • vue3+ pinia 的初实用
    固定不变的:stores/index.jsimport{createPinia}from"pinia"constpinia=createPinia()exportdefaultpinia main.jsimport{createApp}from......
  • vue路由拦截器
    vue路由拦截器有三种路由拦截器:全局的,针对单个路由的,针对单个组件的1.全局的路由拦截器写在router下的index.js的exportdefaultrouter之前的代码。前置拦截器:route......
  • jenkins Webhook Trigger 使用
    Jenkins插件中心安装插件GenericWebhookTrigger设置APITokenJenkins->系统管理->管理用户->设置->APIToken->添加Token配置GitlabwebHook添加......
  • Springcloud bootstrap配置时候注册不了服务
    在开发中以前用的是application.yml是可以注册到nacos服务中的,但是改成bootstrap配置后却注册不了服务了。解决方案就是在pom中引入<dependency><groupId>o......
  • vue3 Teleport 传送门
    先放个官方文档链接~某位同事研究vue3时,发现vue3的Teleport使用起来有点问题。<template><divclass="test">1<divclass="qwe">2</div><teleportto=".q......
  • SpringCloud 读取Nacos中数据配置
    1.在Nacos中配置数据源在“配置列表”中点击“加号”创建配置文件  我选择的是YAML格式#数据源配置spring:datasource:driver-class-name:com.mys......
  • vue2和vue3的modules :
    store/modules/home.jsexportdefault{state:{//服务器数据banners:[],recommends:[]},mutations:{changeBanners(state,banners......
  • vite+vue2 的学习与问题记录
    描述按照博文[https://juejin.cn/post/6988808776291713060]指导步骤执行完成。问题记录运行npmrundev控制台显示failedtoloadconfigfrom/Users/study-vite-vu......
  • vue3+vuex 的 action 来发送网络请求的
    <template><divclass="app"><h3>HomePage</h3><ul><templatev-for="itemin$store.state.banners":key="item.acm"><li>{{item.title......
  • 058_末晨曦Vue技术_过渡 & 动画之过渡的类名
    进入/离开&列表过渡点击打开视频讲解更加详细概述Vue在插入、更新或者移除DOM时,提供多种不同方式的应用过渡效果。包括以下工具:在CSS过渡和动画中自动应用cl......