本篇文章给大家带来的内容是关于spring boot如何打包?如何在centos下部署?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

spring boot打包以及部署

一、打包

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工具中可视化工具打包,如图

spring boot如何打包?如何在centos下部署?

spring boot如何打包?如何在centos下部署?

通过命令行来打包

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

标签
DT素材网

DT素材网

141

0

0

( 此人很懒并没有留下什么~~ )