springboot项目部署

启动脚本 start.sh

#!/bin/bash

# 设置JAR文件路径
JAR_PATH="your-app.jar"

# 检查JAR文件是否存在
if [ ! -f "$JAR_PATH" ]; then
  echo "JAR文件不存在: $JAR_PATH"
  exit 1
fi

# 启动应用
nohup java -jar $JAR_PATH > app.log 2>&1 &

# 获取进程ID
PID=$!

# 将PID写入文件
echo $PID > pid.txt

echo "应用已启动,PID: $PID"

停止脚本 stop.sh

#!/bin/bash

# 读取PID文件
if [ -f "pid.txt" ]; then
  PID=$(cat pid.txt)
else
  echo "PID文件不存在"
  exit 1
fi

# 检查进程是否在运行
if ps -p $PID > /dev/null; then
  # 发送终止信号
  kill $PID
  echo "已发送终止信号到PID: $PID"
  # 等待进程结束
  while ps -p $PID > /dev/null; do
    sleep 1
  done
  echo "应用已停止"
  # 删除PID文件
  rm pid.txt
else
  echo "进程未在运行,PID: $PID"
fi

使用说明:

1、修改JAR文件路径:将脚本中的 your-app.jar 替换为实际的JAR文件路径。 2、赋予执行权限

   chmod +x start.sh
   chmod +x stop.sh

3、启动应用:

   ./start.sh
   

4、停止应用:

   ./stop.sh
   

常用指令

java -jar mdmApp.jar --spring.profiles.active=dev
java -jar mdmApp.jar --server.port=8081
java -jar your-application.jar --spring.config.location=file:/path/to/config/application.properties
java -jar your-application.jar --spring.profiles.active=dev --spring.config.location=file:/path/to/config/
java -jar C:\Users\wuchaozhi\Desktop\中建\mdmApp.jar --server.port=8081

推荐
nohup java -jar mdmApp.jar > app.log 2>&1 &


java -jar C:\Users\wuchaozhi\Desktop\中建\mdmApp.jar --spring.config.additional-location=C:\Users\wuchaozhi\Desktop\中建\application.yaml   

// 启动mdm jar包的指令
chmod -R 777 mdm_kk
nohup java -jar mdmApp.jar --spring.config.additional-location=application.yaml > app.out 2>&1 &  

--spring.profiles.active=dev

image-20241206163541344

pom文件配置方案

   <profiles>
        <profile>
            <!-- 本地开发环境 -->
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
           <!--配置默认的配置文件,idea开发右侧的maven-install中,profiles默认选中dev-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!-- 测试环境 -->
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
           <!-- <activation>
                <activeByDefault>true</activeByDefault>
            </activation>-->
        </profile>
        <profile>
            <!-- 生产环境 -->
            <id>pro</id>
            <properties>
                <profiles.active>pro</profiles.active>
            </properties>
          <!--  <activation>
                <activeByDefault>true</activeByDefault>
            </activation>-->
        </profile>
    </profiles>

对应的配置文件举例:

application-dev.yml application-test.yml application-pro.yml 也可以是目录配置方式

此处配置三种环境,用哪个环境就把那里设置为true,然后clean、install 打包后设置好了。

另外此时在配置文件添加另外一个配置也行,指定到pom文件:

#环境配置开发时使用 spring.profiles.active=@profiles.active@ 2、maven命令行打包指定

mvn clean package -Pdev

mvn clean package -Ptest

mvn clean package -Ppro

打包指定相应的配置文件。

3、配置文件指定

一般 application.properties 文件中指定环境

spring.profiles.active=test 指定下面的几个文件

4、启动jar包时指定

nohup java -jar demo-server.jar --spring.profiles.active = test > log.file 2>&1 & 直接启动指定test环境

5、虚拟机指定:

-Dspring.profiles.active=dev 6、使用时注意一下几点,配置文件加载顺序:

1)、同级情况下,application.properties文件优先级大于application.yml,前者会覆盖后者;

2)、springboot的默认加载路径有5个,分别是classpath:/、classpath:/config/、项目根路径、项目根路径/config/*/、项目根路径/config/,会从这5个路径下加载application.properties或application.yml;

3)、5个默认的加载路径的优先级为:项目根路径下的config > 项目根路径下的config/*/ > 项目根路径 > classpath:/config > classpath:/,前者会覆盖后者

7、综上6所述:优先级如下

1):根目录/config/application.properties 2):根目录/config/application.yml 3):根目录/application.properties 4):根目录/application.yml 5):classpath目录/config/application.properties 6):classpath目录/config/application.yml 7):classpath目录/application.properties 8):classpath目录/application.yml