idea 开发环境搭建

idea中安装shell开发插件

服务器具备的条件

  1. 已经安装 lsof(用于检查端口占用)
  2. 已安装 git
  3. 安装 maven
  4. 有 java 环境

背景

代码提交到仓库后,需要在服务器上重新部署 springboot 的代码,每次自己打jar包上传到服务器步骤太繁琐,考虑把要使用的命令放在脚本中

初始化拉取指定分支的代码

blog_int.sh

#!/usr/bin/env bash

cd /data/code/
git clone -b V3.0.0 git@github.com:daleyzou/blog.git

部署的代码

deplog.sh

#!/usr/bin/env bash

cd /data/code/blog
echo '自动部署Springboot项目脚本...'
echo '1. 拉取代码...'
git pull
echo '2. 检查8000端口是否被占用...'
pid_blog=`lsof -i :8000|grep -v "PID"|awk '{print $2}'`
if [ "$pid_blog" != "" ];
then
echo '8000端口被占用'
echo $pid_blog
kill -9 "$pid_blog"
echo $pid_blog '进程已被杀死'
else
echo "端口未被占用"
fi
echo '3. 删除已有jar包...'
if [ ! -f "/data/jarDir/blog-1.0.1-SNAPSHOT.jar" ];then
echo "文件不存在"
else
rm -f /data/jarDir/blog-1.0.1-SNAPSHOT.jar
fi
echo '4. 清理原有项目...'
/data/usr/local/apache-maven/bin/mvn clean
echo '5. 打包...'
/data/usr/local/apache-maven/bin/mvn clean package -Dmaven.test.skip=true
echo '6. 将打包后的 jar 文件移动到指定目录...'
mv /data/code/blog/target/blog-1.0.1-SNAPSHOT.jar /data/jarDir
echo '7. 后台运行jar包...'
nohup java -jar /data/jarDir/blog-1.0.1-SNAPSHOT.jar > /data/jarDir/log.out 2>&1 &
以后当代码提交到仓库后,直接执行 deploy.sh 就可以完成代码的重新拉取、编译、启动操作

在idea中编写自动拉取、编译、启动springboot项目的shell脚本的更多相关文章

  1. xmake v2.5.2 发布, 支持自动拉取交叉工具链和依赖包集成

    xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...

  2. kubernetes实战篇之创建密钥自动拉取私服镜像

    系列目录 前面我们讲解了如何搭建nexus服务器,以及如何使用nexus搭建docker私有镜像仓库,示例中我们都是手动docker login登陆私服,然后通过命令拉取镜像然后运行容器.然而这种做法 ...

  3. python自动拉取备份压缩包并删除3天前的旧备份

    业务场景,异地机房自动拉取已备份好的tar.gz数据库压缩包,并且只保留3天内的压缩包文件,用python实现 #!/usr/bin/env python import requests,time,o ...

  4. Spark Streaming中向flume拉取数据

    在这里看到的解决方法 https://issues.apache.org/jira/browse/SPARK-1729 请是个人理解,有问题请大家留言. 其实本身flume是不支持像KAFKA一样的发 ...

  5. 8.3 Customizing Git - Git Hooks 钩子 自动拉取 自动部署 提交工作流钩子,电子邮件工作流钩子和其他钩子

    https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks https://github.com/git/git/blob/master/temp ...

  6. 通过宝塔webhook,实现git自动拉取服务器代码

    1.宝塔安装webhook,添加一条记录,脚本内容为: #!/bin/bash echo "" #输出当前时间 date --date='0 days ago' "+%Y ...

  7. Window中的Docker 拉取Mysql镜像 并在本地Navicate链接

    首先本地   拉取mysql镜像 以下是所有mysql镜像 我自己下载的为5.6   下面 以5.6为例:(拉取mysql5.6镜像) docker pull mysql:5.6 创建一个容器 doc ...

  8. Dockerfile 构建后端springboot应用并用shell脚本实现jenkins自动构建

    Dockerfile 文件构建docker镜像 FROM centos MAINTAINER zh*****eng "z*******ch.cn" ENV LANG en_US.U ...

  9. 在PHP中调用php_ssh实现远程登陆linux服务器并执行shell脚本。

    这个功能主要用于在web端利用程序对远程服务器进行操作,通过PHP_ssh执行shell脚本来实现. 首先要安装php_ssh2组件,linux中centos7下有ssh2源,直接安装.window下 ...

随机推荐

  1. 生信-使用NCBI进行目的基因的引物设计

    使用NCBI进行目的基因的引物设计 全文概述 利用生信工具进行目的基因的引物设计,使用了NCBI进行筛选与设计引物,使用 idtdna对筛选出的DNA进行检查.本文分享了如何筛选出高质量的基因引物,帮 ...

  2. template模板语言

    模板渲染 通过views视图函数对html页面进行渲染 标签{{ 变量 }}/标签 {% 逻辑 %} -- 标签 万能的点 <h1>91李业网</h1> <h2>{ ...

  3. leetcode无重复字符的最长子串

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...

  4. 一天一个Linux命令,第三天cat命令

    命令:cat (中文猫的意思) 解释:cat命令连接文件并打印到标准输出设备上(如显示器),cat经常用来显示文件的内容 注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容. ...

  5. [高清] Java从入门到精通第3版

    ------ 郑重声明 --------- 资源来自网络,纯粹共享交流, 如果喜欢,请您务必支持正版!! --------------------------------------------- 下 ...

  6. Windows中的消息与消息队列

    消息 在Windows中,消自由MSG结构体表示 typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lPar ...

  7. 2.8_Database Interface ADO由来

    OLE-DB,它无法广为流行,因为如下两点: 1.由于OLE-DB太底层化,使用上非常复杂,需要程序员拥有高潮的技巧. 2.OLEDB标准的API是C++API,只能供C++语言调用. 为了使得流行的 ...

  8. web API .net - .net core 对比学习-使用Swagger

    根据前两篇的介绍,我们知道.net web api 和 .net core web api在配置方面的不同如下: 1. .net web api的配置是在 App_Stat文件夹里面添加对应的配置类, ...

  9. Java Swing 资料(转载学习)

    Swing图像界面简介:https://blog.csdn.net/xietansheng/article/details/72814531 Swing实用经验总结篇:https://blog.csd ...

  10. RabbitMQ实战-死信队列

    RabbitMQ死信队列 场景说明 代码实现 简单的Util 生产者 消费者 场景说明 场景: 当队列的消息未正常被消费时,如何解决? 消息被拒绝并且不再重新投递 消息超过有效期 队列超载 方案: 未 ...