IDEA 微服务开发环境自动发布
问题描述
平常我们使用IntelliJ IDEA 开发还是比较多的,工具的强大自然不用说,用好工具确实能能省下不少事情,提升开发效率,在单体架构的开发时,手动编译、打包、上传、部署都还可以接受,但在我们使用IDEA 开发微服务项目时,就会遇到问题,动不动几十个服务,如果都这么来一遍(当然如果是微你是微服务团队,专人负责固定几个服务除外),估计手都要废了,能不能借助工具将这个过程自动化呢?能省点时间上个厕所,抽根烟,吃点零食也可以嘛,本文就介绍一种简单的方法实现开发环境的自动发布
微服务常用组件
一般采用 spring cloud 或 spring cloud alibaba 较多,常用会有以下几个组件
注册中心 eureka / nacos
网关服务 zuul / srping cloud gateway
基础服务 如:user-center (用户中心) uaa-center(授权中心) 等
业务服务 如: account-center (账户中心) product-center (产品中心) finance-center (财务中心) 等
实现技术
主要目标:实现在IDEA中双击完成自动编译、打包、上传到服务、部署整个过程
实现技术:使用Maven插件 + shell 脚本
服务器脚本准备
构建前要在服务端事先配置好脚本,安装好JDK并配置好环境变量
在linux服务器上创建服务目录
mkdir -p /usr/local/service/account
在该目录下放置 account.sh change.sh 两个脚本,脚本内容如下
account.sh (服务启停脚本)
#!/bin/bash
export JAVA_HOME=/usr/local/java
export PATH=.:$JAVA_HOME/bin:$PATH
APP_NAME=account-center
JAR_FILE=$APP_NAME.jar
LOG_PATH=./log
start(){
checkpid
if [ ! -n "$pid" ]; then
echo "启动命令"
echo "nohup java -jar $JAR_FILE >nohup.out &"
nohup java -server -Xms1024m -Xmx1024m -XX:PermSize=200m -agentlib:jdwp=transport=dt_socket,server