在开发过程遇到项目依赖很多服务,想在本地调试,但是idea启动这么多服务很费事,而且平时也不需要修改,但是服务之间有依赖,这时候写了个自动启动当前目录jar包(spring boot)的脚本,
把jar包(spring boot)打好,放到目录里,run下就可以启动所有的jar包了!
用了git安装的时候带的mintty(windows中支持bash shell)
文件名: run.sh
#!/bin/bash
allJar=`ls *.jar`
active="local"
if [ -n "$1" ]
then
active=$1
fi
echo "active = $active"
for jar in $allJar
do
echo "run ${jar} ---------------------"
mintty -s 100,40 -t $jar -e java -jar -Xms100m -Xmx500m -XX:PermSize=128M -XX:MaxPermSize=256M -Dspring.profiles.active=${active} $jar &
#eureka 运行后等待
if [ `expr match $jar ".*eureka.*"` -ge 6 ]
then
echo "eureka 等待9秒"
sleep 9
fi
echo "等待5秒"
sleep 5
echo "end ${jar} ---------------------"
done
运行方法: run.sh 或者指定dev环境(Dspring.profiles.active)配置运行 run.sh dev
注意:如果目录放置了配置文件将会载入配置文件,而不会使用jar包里的配置
补充一个可以控制参数和端口自增的自动脚本:
#!/bin/bash
allJar=`ls *.jar`
active="local"
port=12999
if [ -n "$1" ]
then
active=$1
fi
echo "active = $active"
for jar in $allJar
do
for nowVer in 1.1.0 1.1.8 1.2.0 1.2.1 1.3.5 1.5.8 2.0.0 2.1.0 2.1.5 3.0.0 4.5.1
do
echo "run ${nowVer} ${port} ${jar} ---------------------"
mintty -s 100,40 -t $jar-${nowVer}-${port}-${active} -e java -jar -Xms100m -Xmx500m -XX:PermSize=128M -XX:MaxPermSize=256M -Dapollo.bootstrap.enabled=false -Dspring.profiles.active=${active} $jar --server.port=${port} --eureka.instance.metadata-map.version=${nowVer} &
#eureka 运行后等待
if [ `expr match $jar ".*eureka.*"` -ge 6 ]
then
echo "eureka 等待6秒"
sleep 6
fi
echo "等待2秒"
sleep 2
echo "end ---------------------------------------"
port=`expr $port + 1`
done
done
echo "运行完成等待20秒 ------"
sleep 20