• 在linux裸机部署springBoot项目


    一、项目创建及打包

      创建项目,打jar包

    二、安装JDK

      1、在/usr目录下床架java文件夹,将

      2、下载jdk8,并上传linux服务器(/usr/java)

        下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

      3、解压

    sudo tar -zxvf jdk-8u251-linux-x64.tar.gz

      4、配置环境变量

    sudo vi /etc/profile

      添加如下变量信息

    export JAVA_HOME=/usr/java/jdk1.8.0_251
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:{JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export PATH=$PATH:${JAVA_PATH}

      5、重新加载配置文件

    source /etc/profile

      6、查看安装情况

    java -version

      看到如下输出,即为成功:

    java version "1.8.0_251"
    Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
    Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

    三、安装Maven

      1、下载Maven:http://maven.apache.org/download.cgi

      2、在/usr文件夹下创建maven文件夹,并将下载的maven文件放在该文件夹内

    sudo mkdir /usr/maven
    sudo mv apache-maven-3.6.3-bin.tar.gz /usr/maven/

      3、解压

    sudo tar -zxvf apache-maven-3.6.3-bin.tar.gz

      4、设置环境变量

    sudo vi /etc/profile

      设置如下环境变量

    export MAVEN_HOME=/usr/maven/apache-maven-3.6.3
    export PATH=$MAVEN_HOME/bin:$PATH

      5、刷新配置文件

    source /etc/profile

      6、验证安装

    mvn -v

      出现以下输出,即为安装成功

    Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
    Maven home: /usr/maven/apache-maven-3.6.3
    Java version: 1.8.0_251, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_251/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"

      7、修改maven配置

    vi /usr/maven/apache-maven-3.6.3/conf/settings.xml

      可以添加maven仓库及用户名密码等内容

    四、项目运行

    nohup java -jar /usr/project/ins-group-buying-channel-jsf-service-1.0.0-SNAPSHOT.jar

    五、修改host

    如果是测试环境,需要配置相关host

    sudo vi /etc/host

    然后添加相应的host配置即可

    六、添加shell脚本

    #!/bin/bash
    #这里可替换为你自己的执行程序,其他代码无需更改
    APP_NAME=/usr/project/jar/ins-group-buying-channel-jsf-service-1.0.0-SNAPSHOT.jar
    LOG_PATH=/usr/project/log
    
    #使用说明,用来提示输入参数
    usage() {
        echo "Usage: sh 脚本名.sh [startTest|startPrePreod|startProduction|stop|restart|status]"
        exit 1
    }
    
    #检查程序是否在运行
    is_exist(){
      pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
      #如果不存在返回1,存在返回0
      if [ -z "${pid}" ]; then
       return 1
      else
        return 0
      fi
    }
    
    #测试环境启动方法
    startTest(){
      profile="test"
      start $profile
    }
    
    
    #预发环境启动方法
    startPreProd(){
      profile="pre-prod"
      start $profile
    }
    
    
    #生产环境启动方法
    startProduction(){
      profile="production"
      start $profile
    }
    
    
    #启动方法
    start(){
      is_exist
      if [ $? -eq "0" ]; then
        echo "${APP_NAME} is already running. pid=${pid} ."
      else
        nohup java -jar $APP_NAME --spring.profiles.active=$1 & # > $LOG-PATH/log.file 2>&1 &
        echo "${APP_NAME} start success"
      fi
    }
    
    
    #停止方法
    stop(){
      is_exist
      if [ $? -eq "0" ]; then
        kill -9 $pid
      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
      "starttest")
        startTest
        ;;
      "startpre")
        startPreProd
        ;;
      "startprod")
        startProduction
        ;;
      "stop")
        stop
        ;;
      "status")
        status
        ;;
      "restart")
        restart
        ;;
      *)
        usage
        ;;
    esac
  • 相关阅读:
    Lambada. 计算和
    adb server version (31) doesn't match this client (39) 解决方案
    python爬虫beautifulsoup4系列2
    python爬虫beautifulsoup4系列1
    利用Python攻破12306的最后一道防线
    python自动化17-JS处理滚动条
    python多线程
    python接口自动化2-发送post请求
    python接口自动化1-发送get请求 前言
    jenkens其实是代码上传工具
  • 原文地址:https://www.cnblogs.com/liconglong/p/13177318.html
Copyright © 2020-2023  润新知