run.sh 文件 启动命令 sh run.sh
目录结构:
这里将lib config文件都拆分打包的 不拆分的话,修改一下你的启动命令就好了
拆分部署见最底部
会自动找到当前目录中的.jar文件。所以。当前文件夹中仅允许存在一个jar包
#! /bin/bash
# springboot的jar放同级目录下即可,只能有一个jar文件
# ./run.sh: Permission denied 解决方案 chmod +x run.sh
# 启动命令 sh run.sh
AppName=test-app.jar
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
CURRENT_PATH=/home/shedu/shedu_sj/back/
LOG=/home/shedu/shedu_sj/back/log/console.log
JAR=$(find $CURRENT_PATH -maxdepth 1 -name "*.jar")
PID=$(ps -ef | grep $AppName | grep -v grep | awk '{ print $2 }')
if [ ! -d ${LOG} ]
then
echo "创建目录:${LOG} "
echo "">${LOG}
fi
case "$1" in
start)
if [ ! -z "$PID" ]; then
echo "$JAR 已经启动,进程号: $PID"
else
echo -n -e "启动 $JAR ... $PID \n"
cd $CURRENT_PATH
nohup java -jar $JVM_OPTS -Dloader.path=lib,resources,lib $AppName >$LOG 2>&1 &
if [ "$?"="0" ]; then
echo "启动完成,请查看日志确保成功"
else
echo "启动失败"
fi
fi
;;
stop)
if [ -z "$PID" ]; then
echo "$JAR 没有在运行,无需关闭"
else
echo "关闭 $JAR ..."
kill -9 $PID
if [ "$?"="0" ]; then
echo "服务已关闭"
else
echo "服务关闭失败"
fi
fi
;;
restart)
${0} stop
${0} start
;;
kill)
echo "强制关闭 $JAR"
killall $JAR
if [ "$?"="0" ]; then
echo "成功"
else
echo "失败"
fi
;;
status)
if [ ! -z "$PID" ]; then
echo "$JAR 正在运行"
else
echo "$JAR 未在运行"
fi
;;
*)
echo "Usage: ./run.sh {start|stop|restart|status|kill}" >&2
exit 1
esac
start.sh 文件 启动命令 sh start.sh
#!/bin/sh
# line 3: ./run.sh: Permission denied 解决方案 chmod +x run.sh
# 启动命令 sh start.sh
./run.sh start
restart.sh文件 启动命令 sh restart.sh
#!/bin/sh
./run.sh restart
kill.sh 文件 启动命令 sh kill.sh
#!/bin/sh
./run.sh stop
拆分项目部署
修改build内的内容。然后config中的application.yml系统会优先选择你打包命令中的配置文件。如果没有则会使用你项目中的配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-lib</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/lib</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>