本篇文章给大家带来的内容是关于spring boot如何打包?如何在centos下部署?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
springboot的打包方式有很多种。有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的。这里主要介绍如何打成jar进行部署。不推荐用war,因为springboot适合前后端分离,打成jar进行部署更合适。
需要在pom.xml中增加主程序入口
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> </plugins></build>
在idea工具中可视化工具打包,如图
通过命令行来打包
mvn clean package -Dmaven.test.skip=true
官网文档部署说明
按照这上面部署被坑惨了。。
下面整理下自己部署的sh
脚本
1、XXX.sh,此sh
放到和jar统一目录即可
#!/bin/sh ### BEGIN INIT INFO # Provides: lanwei # Required-Start: $local_fs $network # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: XXX service # Description: XXX service ### END INIT INFO echo "Starting...." APP_NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') APP_HOME=/usr/software/${APP_NAME} #这里需要配置环境,dev test stg prd APP_ENV="dev" #配置jar APP_JAR=${APP_HOME}/XXXX.jar usage() { echo "Usage: sh ${APP_NAME} [start|stop|restart]" exit 1 } ################################################## # Some utility functions ################################################## findDirectory() { local L OP=$1 shift for L in "$@"; do [ "$OP" "$L" ] || continue printf %s "$L" break done } echo "APP_ENV : ${APP_ENV}" echo "APP_HOME : ${APP_HOME}" echo "APP_NAME : ${APP_NAME}" echo "APP_JAR : ${APP_JAR}" ##################################################### # Find a location for the pid file ##################################################### if [ -z "$APP_RUN" ] then APP_RUN=$(findDirectory -w /var/run /usr/var/run /tmp) fi #APP_RUN=/var/run echo "APP_RUN : ${APP_RUN}" ##################################################### # Find a pid ##################################################### if [ -z "$APP_PID" ] then APP_PID="$APP_RUN/${APP_NAME}.pid" fi echo "APP_PID : ${APP_PID}" LOG=${APP_HOME}/logs/${APP_ENV}.log ERROR_LOG=${APP_HOME}/logs/${APP_ENV}_err.log case $1 in start) echo "Starting ${APP_NAME} ..." if [ ! -f $APP_PID ]; then cd ${APP_HOME} nohup java -jar $APP_JAR --spring.profiles.active=${APP_ENV} > $LOG 2> $ERROR_LOG & echo $! > $APP_PID echo "$APP_NAME started ..." else echo "$APP_NAME is already running ..." fi ;; stop) if [ -f $APP_PID ]; then PID=$(cat $APP_PID); echo "$APP_NAME PID is ${PID}" echo "$APP_NAME stoping ..." kill $PID; echo "$APP_NAME stopped ..." rm $APP_PID else echo "$APP_NAME is not running ..." fi ;; restart) if [ -f $APP_PID ]; then PID=$(cat $APP_PID); echo "$APP_NAME PID is ${PID}" echo "$APP_NAME stopping ..."; kill $PID; echo "$APP_NAME stopped ..."; rm $APP_PID echo "$APP_NAME starting ..." cd ${APP_HOME} nohup java -jar $APP_JAR --spring.profiles.active=${APP_ENV} > $LOG 2> $ERROR_LOG & echo $! > $APP_PID echo "$APP_NAME started ..." else echo "$APP_NAME is not running ..." echo "$APP_NAME starting ..." cd ${APP_HOME} nohup java -jar $APP_JAR --spring.profiles.active=${APP_ENV} > $LOG 2> $ERROR_LOG & echo $! > $APP_PID echo "$APP_NAME started ..." fi ;; esac
2、在/etc/init.d/
下创建自己的服务名称文件这里比如myapp.sh
#!/bin/sh # # /etc/init.d/sms-web # chkconfig: 345 63 37 # description: activemq servlet container. # processname: activemq 5.14.1 # Source function library. #. /etc/init.d/functions # source networking configuration. #. /etc/sysconfig/network export JAVA_HOME=/usr/local/jdk1.8.0_144 export PATH=$JAVA_HOME/bin:$PATH export MYAPP_WEB_HOME=/usr/software/myapp case $1 in start) sh $MYAPP_WEB_HOME/myapp.sh start ;; stop) sh $MYAPP_WEB_HOME/myapp.sh stop ;; restart) sh $MYAPP_WEB_HOME/myapp.sh restart ;; esac exit 0
在/etc/init.d/下 chmod +x myapp.sh赋权限
chkconfig --list查看服务列表,如果没有, 添加chkconfig --add myapp到服务中。
设置开机启动chkconfig myapp on
The above is the detailed content of How to package spring boot? How to deploy under centos?. For more information, please follow other related articles on the PHP Chinese website!