springboot 多模块工程 打包部署 jar包 ;shell启动

项目本地前后台已经联通 ,前端已经部署到阿里云的nginx上:https://blog.csdn.net/lileLife/article/details/103497663

今天部署后端 ,项目后端使用springboot  mybits mysql redis开发 ,github地址: https://github.com/lilelife/webapp

springboot 内置tomcat  jetty所以打包jar 直接java- jar包就行 

因为是多 module开发 两个包 ,一个common  一个userService服务  ,多模块开发需要注意指明模块之间的依赖关系

springboot 多模块工程 打包部署 jar包 ;shell启动_第1张图片

项目完整结构如下。

springboot 多模块工程 打包部署 jar包 ;shell启动_第2张图片

其中 common只是存储实体类或工具类,所以其pom文件中不需要加入打包插件 ,即不包含

而UserService 是包含controller的springboot 主main函数的服务,需要打包,其pom 插件如下:

    
        UserService
        
            
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                        
                            repackage  
                            build-info
                        
                    
                
                
                    com.lile.SpringbootApplication  
                    false
                
            
            
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.2
                
                    true
                    true
                
            


        
    

父pom需要加入maven打包插件 ,内容如下;

 
        
           

            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.7.0
                
                    8
                    8
                
            
        
        

总结就是, 父pom 和 包含springboot的mian函数的模块在pom中需要加入打包插件,其他的工具类的模块不需要。

启动工程,测试查看模块之间的调用是否正常。

打包:

maven 中 主工程目录下lifecycle-> 先clean ,->package

springboot 多模块工程 打包部署 jar包 ;shell启动_第3张图片  这里 的Lifecycle 和plugins的区别是 lifecycle周期更长 使用这个就行了。

打包显示 :Error:(43,66) java: -source 1.6 中不支持 lambda 表达式

设置 language为1.8 

要注意 项目多余的import 类 需要删除 ,不然打包时候会包找不到该类

springboot 多模块工程 打包部署 jar包 ;shell启动_第4张图片

打包成功:

springboot 多模块工程 打包部署 jar包 ;shell启动_第5张图片

springboot 模块的 target目录下查看:springboot 多模块工程 打包部署 jar包 ;shell启动_第6张图片

 

部署到阿里云服务器上,

服务器安装 jdk 1.8 

创建目录 

cd  /usr

mkdir webapp 

chown 777 webapp 

上传jar包

此时可以 java -jar UserService.jar 运行 测试

springboot 多模块工程 打包部署 jar包 ;shell启动_第7张图片

部署成功。

阿里云添加安全端口 

访问:

springboot 多模块工程 打包部署 jar包 ;shell启动_第8张图片

2、shell脚本启动

java -jar bootdo.jar 启动的话 控制台关闭就关闭

使用 java -jar XXX.jar &    // 窗口关闭停止  & 表示后台

nohup java -jar XXX.jar &  // 不挂断运行 窗口 账户退出都运行。

nohup java -jar XXX.jar >temp.txt &    //输出内容重定向到temp.txt中 

定义 shell脚本

touch w.sh

vim  w.sh

#i   编写

#!/bin/sh
 
APP_NAME=product-service
#jar包路径
JAR_PATH='/usr/webapp'
#jar名称
JAR_NAME=UserService.jar
#日志路径
LOG_PATH='/usr/webapp/logs'
#PID  代表是PID文件
PID=$JAR_NAME\.pid
 
#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
    exit 1
}
 
#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $JAR_NAME|grep -v grep|awk '{print $2}' `
  #如果不存在返回1,存在返回0    
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}
 
#启动方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> $APP_NAME is already running PID=${pid} <<<"
  else
    nohup java -Xms256m -Xmx512m -jar $JAR_PATH/$JAR_NAME >> $LOG_PATH/$APP_NAME.log 2>&1 &
    echo $! > $PID
    echo ">>> start $APP_NAME successed PID=$! <<<"
   fi
  }
 
#停止方法
stop(){
  #is_exist
  pidf=$(cat $PID)
  #echo "$pidf" 
  echo ">>> PID = $pidf begin kill $pidf <<<"
  kill $pidf
  rm -rf $PID
  sleep 2
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> PID = $pid begin kill -9 $pid  <<<"
    kill -9  $pid
    sleep 2
    echo ">>> $APP_NAME process stopped <<<" 
  else
    echo ">>> $APP_NAME is not running <<<"
  fi 
}
 
#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> $APP_NAME is running PID is ${pid} <<<"
  else
    echo ">>> $APP_NAME is not running <<<"
  fi
}
 
#重启
restart(){
  stop
  start
}
 
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac
exit 0

使用 sh  w.sh start|stop|restart  启动 停止 重启

日志在 logs 目录,需要给权限 

mkdir logs 

chown 777 logs/

springboot 多模块工程 打包部署 jar包 ;shell启动_第9张图片

成功。

你可能感兴趣的:(后台,java)