一、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等作为自动化构建部署管理方式,

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

Jenkins+SpringCloud(多模块)+Vue项目详细配置的更多相关文章

  1. [转]Vue项目全局配置微信分享思路详解

    这篇文章给大家介绍了vue项目全局配置微信分享思路讲解,使用vue作为框架,使用vux作为ui组件库,具体内容详情大家跟随脚本之家小编一起学习吧 这个项目为移动端项目,主要用于接入公众号服务.项目采用 ...

  2. 如何为你的 Vue 项目添加配置 Stylelint

    如何为你的 Vue 项目添加配置 Stylelint 现在已经是 9102 年了,网上许多教程和分享帖都已经过期,照着他们的步骤来会踩一些坑,如 stylelint-processor-html 已经 ...

  3. 利用vue-cli3快速搭建vue项目详细过程

    一.介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令(如:vue create .vue ...

  4. 使用jenkins一键打包发布vue项目

    jenkins的安装 Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件. Jenkins 支持各种运行方式,可通过系统包.Docker 或者通过一个独立 ...

  5. vue项目中配置favicon图标

    如上图所示,页面顶部的小图标会让页面显得高大上,一般把这种图标叫做favicon图标.利用vue-cli脚手架搭建的项目,如果不手动配置,页面中是不会显示favicon图标. 不配置是这样子的: fa ...

  6. vue-cli安装以及搭建vue项目详细步骤

    vue init webpack projectname(projectname是你项目的名称) 创建项目卡住不动解决方案: https://cli.vuejs.org/zh/guide/instal ...

  7. webpack构建vue项目(配置篇)

    最近公司要求用vue重构项目,还涉及到模块化开发,于是乎,我专门花了几天的时间研究了一下webpack这个目前来看比较热门的模块加载兼打包工具,发现上手并不是很容易,现将总结的一些有关配置的心得分享出 ...

  8. vue项目eslint配置 以及 解释

    // https://eslint.org/docs/user-guide/configuring module.exports = { root: true, parserOptions: { pa ...

  9. 在vue项目中配置webpack

    首先我们来看一下使用Vue-cli2与Vue-cli2之后的版本(这里以Vue-cli4版本为例)创建项目目录结构的不同: Vue-cli2(左图)与Vue-cli4(右图)创建项目的目录 从上图可以 ...

随机推荐

  1. 开发工具-SQL Server官方下载地址

    更新记录 2022年6月10日 完善标题. https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 相关链接: SSMS下载地址 ...

  2. React中render Props模式

    React组件复用 React组件复用的方式有两种: 1.render Props模式 2.高阶组件HOC 上面说的这两种方式并不是新的APi. 而是利用Raect自身的编码特点,演化而来的固定编码写 ...

  3. 3D大场景展示功能你了解多少?见详解!

    裸眼3D技术的出现打破了真实与虚拟的界限,人们不仅希望能够体验奇妙的虚拟场景,也希望足不出户在短短几分钟内就能看到遍布各地的场景,希望能实时对接关键数据. 裸眼3D技术的出现打破了真实与虚拟的界限,人 ...

  4. 《ECMAScript 6 入门》【三、字符串的扩展】(持续更新中……)

    前言: 本篇介绍 ES6 对字符串的改造和增强.一.字符的 Unicode 表示法 字符的 Unicode 码点必须在\u0000~\uFFFF之间,\uxxxx形式表示一个字符,其中xxxx表示字符 ...

  5. svn提交报错Unexpected HTTP status 413 'Request Entity Too Large' on

    问题原因:nginx的client_max_body_size设置过小,默认 1M,如果请求的正文数据大于client_max_body_size,HTTP协议会报错 413 Request Enti ...

  6. jvm jni 及 pvm pybind11 大批量数据传输及优化

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  7. 链表设计与Java实现,手写LinkedList这也太清楚了吧!!!

    链表设计与实现 在谈链表之前,我们先谈谈我们平常编程会遇到的很常见的一个问题.如果在编程的时候,某个变量在后续编程中仍需使用,我们可以用一个局部变量来保存该值,除此之外一个更加常用的方法就是使用容器了 ...

  8. final关键字用于修饰局部变量和修饰成员变量

    修饰变量 1. 局部变量--基本类型 基本类型的局部变量,被fifinal修饰后,只能赋值一次,不能再更改.代码如下: public class FinalDemo1 { public static ...

  9. do-while循环和三种循环的区别

    循环语句3--do...while do...while循环格式 初始化表达式① do{ 循环体③ 步进表达式④ }while(布尔表达式②); 执行流程 执行顺序:①③④>②③④>②③④ ...

  10. java的类

    public class demo01 { public static void main(String[] args) { //类名可用中文也可用英文,但是不建议用中文 String 王者荣耀=&q ...