Commit 8a419ff9 by Lizh

调整启动脚本

parent e6fcb2d8
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<parent> <parent>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server</artifactId> <artifactId>custom-server</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
...@@ -19,17 +19,17 @@ ...@@ -19,17 +19,17 @@
<dependency> <dependency>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server-integrate</artifactId> <artifactId>custom-server-integrate</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server-core</artifactId> <artifactId>custom-server-core</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server-domain</artifactId> <artifactId>custom-server-domain</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<parent> <parent>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server</artifactId> <artifactId>custom-server</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<parent> <parent>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server</artifactId> <artifactId>custom-server</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<dependency> <dependency>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server-core</artifactId> <artifactId>custom-server-core</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<parent> <parent>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server</artifactId> <artifactId>custom-server</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<dependency> <dependency>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server-core</artifactId> <artifactId>custom-server-core</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<parent> <parent>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server</artifactId> <artifactId>custom-server</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
<dependency> <dependency>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server-webapp</artifactId> <artifactId>custom-server-webapp</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server-core</artifactId> <artifactId>custom-server-core</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
#!/bin/bash #!/bin/bash
APP_NAME="custom-server" APP_NAME="custom-server"
APP_JAR="custom-server-starter-1.0-SNAPSHOT.jar" APP_JAR="custom-server-starter-1.0.jar"
APP_DIR="/opt/custom-server" LOG_FILE="logs/custom-server.log"
LOG_FILE="$APP_DIR/logs/custom-server.log" JAVA_HOME="/home/lizh/jdk-17.0.19"
# 检查进程是否存在 # 检查进程是否存在
PID=$(ps -ef | grep $APP_JAR | grep -v grep | awk '{print $2}') PID=$(ps -ef | grep $APP_JAR | grep -v grep | awk '{print $2}')
...@@ -15,10 +15,41 @@ if [ -n "$PID" ]; then ...@@ -15,10 +15,41 @@ if [ -n "$PID" ]; then
fi fi
echo "Starting $APP_NAME..." echo "Starting $APP_NAME..."
nohup java -Xms2g -Xmx4g -XX:+UseG1GC \ nohup $JAVA_HOME/bin/java -Xms2g -Xmx4g -XX:+UseG1GC -jar $APP_JAR --spring.profiles.active=dev --spring.config.location=file:config/ >> $LOG_FILE 2>&1 &
-jar $APP_DIR/$APP_JAR \
--spring.profiles.active=prod \
--spring.config.location=file:$APP_DIR/config/ \
> $LOG_FILE 2>&1 &
echo "$APP_NAME started successfully." if [ $? -ne 0 ]; then
\ No newline at end of file echo "$APP_NAME start failed: process launch error."
exit 1
fi
serverCheck() {
local health_url="http://localhost:40071/api/v3/actuator/health"
local poll_interval=20
local max_wait=60
local elapsed=0
echo "Waiting for $APP_NAME to be ready (timeout: ${max_wait}s)..."
while [ $elapsed -lt $max_wait ]; do
sleep $poll_interval
elapsed=$((elapsed + poll_interval))
# 一次 curl 同时获取 HTTP 状态码和响应体,避免二次请求
local response
response=$(curl -s -w "\n%{http_code}" "$health_url" 2>/dev/null)
local http_code=$(echo "$response" | tail -1)
local body=$(echo "$response" | sed '$d')
if [ "$http_code" = "200" ] && echo "$body" | grep -q '"status"\s*:\s*"UP"'; then
echo "$APP_NAME started successfully (health check passed in ${elapsed}s)."
return 0
fi
printf " ... %2ds / %2ds (HTTP %s)\n" $elapsed $max_wait "${http_code:-N/A}"
done
echo "$APP_NAME start failed: health check timeout after ${max_wait}s."
return 1
}
serverCheck || exit 1
#!/bin/bash #!/bin/bash
APP_NAME="custom-server" APP_NAME="custom-server"
APP_JAR="custom-server-starter-1.0-SNAPSHOT.jar" APP_JAR="custom-server-starter-1.0.jar"
# 检查进程是否存在 # 检查进程是否存在
PID=$(ps -ef | grep $APP_JAR | grep -v grep | awk '{print $2}') PID=$(ps -ef | grep $APP_JAR | grep -v grep | awk '{print $2}')
...@@ -11,10 +11,21 @@ if [ -z "$PID" ]; then ...@@ -11,10 +11,21 @@ if [ -z "$PID" ]; then
exit 0 exit 0
fi fi
# 检查是否为当前用户所启动的进程
PROCESS_USER=$(ps -o user= -p $PID 2>/dev/null)
CURRENT_USER=$(whoami)
if [ "$PROCESS_USER" != "$CURRENT_USER" ]; then
echo "Cannot stop $APP_NAME (PID: $PID) — owned by $PROCESS_USER, current user is $CURRENT_USER."
exit 1
fi
echo "Stopping $APP_NAME (PID: $PID)..." echo "Stopping $APP_NAME (PID: $PID)..."
# 优雅停止(发送 SIGTERM 信号) # 优雅停止(发送 SIGTERM 信号)
kill -TERM $PID kill -TERM $PID 2>/dev/null || {
echo "Failed to send SIGTERM to PID $PID."
exit 1
}
# 等待进程退出(最多等待 30 秒) # 等待进程退出(最多等待 30 秒)
MAX_WAIT=30 MAX_WAIT=30
...@@ -22,7 +33,10 @@ WAIT_COUNT=0 ...@@ -22,7 +33,10 @@ WAIT_COUNT=0
while kill -0 $PID 2>/dev/null; do while kill -0 $PID 2>/dev/null; do
if [ $WAIT_COUNT -ge $MAX_WAIT ]; then if [ $WAIT_COUNT -ge $MAX_WAIT ]; then
echo "Force killing $APP_NAME (PID: $PID)..." echo "Force killing $APP_NAME (PID: $PID)..."
kill -KILL $PID kill -KILL $PID 2>/dev/null || {
echo "Failed to force kill PID $PID."
exit 1
}
break break
fi fi
sleep 1 sleep 1
......
...@@ -48,8 +48,9 @@ public class SecurityInterceptor implements HandlerInterceptor { ...@@ -48,8 +48,9 @@ public class SecurityInterceptor implements HandlerInterceptor {
if (token == null) { if (token == null) {
throw new InvalidTokenException("未登录或登录已过期"); throw new InvalidTokenException("未登录或登录已过期");
} }
// erp调用传入特殊Token // erp API 调用传入特殊Token
if (token.equals(erpRequestToken)) { if (token.equals(erpRequestToken)) {
buildApiLoginUser(token);
return true; return true;
} }
// 获取登录用户信息 // 获取登录用户信息
...@@ -82,4 +83,17 @@ public class SecurityInterceptor implements HandlerInterceptor { ...@@ -82,4 +83,17 @@ public class SecurityInterceptor implements HandlerInterceptor {
// 清除线程本地变量 // 清除线程本地变量
SecurityUtils.clearLoginUser(); SecurityUtils.clearLoginUser();
} }
/**
* 构建erp 系统API调用时的登录用户
* @param token
*/
private void buildApiLoginUser(String token) {
// 获取用户信息
LoginUser loginUser = new LoginUser();
loginUser.setToken(token);
loginUser.setUsername("外部API调用");
loginUser.setUserId(-1L);
SecurityUtils.setLoginUser(loginUser);
}
} }
# Custom Server — 主配置文件
# 服务器配置
server:
port: 40071
servlet:
context-path: /
tomcat:
uri-encoding: UTF-8
accept-count: 1000
threads:
max: 200
min-spare: 100
# 自定义:是否需要认证(测试时可以不认证)
needAuthentication: true
# 自定义:ERP系统基础认证信息
erpRequestToken: 70d8f63fe598a0d815c29d0d8a15d55b699844463d0485b505ddbc7e04ee034a
# 自定义:saasAdmin管理后台地址,获取类别信息
admin:
base-url: https://admin.jomalls.com
# Spring 配置 # Spring 配置
spring: spring:
application:
name: custom-server
main:
allow-circular-references: true
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
# 数据源配置 # 数据源配置
datasource: datasource:
url: jdbc:mysql://172.16.19.99:3306/foxpsd-lizh?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false url: jdbc:mysql://172.16.19.99:3306/foxpsd-lizh?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false
username: root username: root
password: joshine password: joshine
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
# 最小空闲连接数
minimum-idle: 5
# 最大连接池大小
maximum-pool-size: 50
# 连接超时时间(60 秒)
connection-timeout: 60000
# 空闲连接超时时间(600 秒)
idle-timeout: 600000
# 最大连接生命周期(900 秒)
max-lifetime: 900000
# 验证超时时间(3 秒)
validation-timeout: 3000
# Redis 配置 # Redis 配置
data: data:
redis: redis:
...@@ -52,94 +12,8 @@ spring: ...@@ -52,94 +12,8 @@ spring:
port: 6379 port: 6379
password: joshine.dev password: joshine.dev
database: 7 database: 7
# 读取/写入超时(毫秒)
timeout: 5000
# 连接超时(毫秒)
connect-timeout: 3000
# Jedis 连接池配置
pool:
max-active: 8
max-idle: 4
min-idle: 2
# Lettuce 连接池配置(Spring Data Redis 使用)
lettuce:
pool:
enabled: true
max-active: 8
max-idle: 4
min-idle: 2
max-wait: 5000
# Redisson 特有配置
redisson:
# 重试次数
retry-attempts: 3
# 重试间隔(毫秒)
retry-interval: 1000
# 心跳间隔(毫秒)
ping-interval: 60000
# 空闲连接超时(毫秒)
idle-timeout: 10000
# SpringDoc OpenAPI 配置
springdoc:
api-docs:
path: /api-docs
swagger-ui:
path: /swagger-ui.html
# MyBatis-Plus 配置
mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml
type-aliases-package: com.jomalls.custom.domain.dal.entity
configuration:
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: auto
# 令牌配置 # 令牌配置
token: token:
header: Authorization header: Authorization
# 令牌密钥(兼容旧版本) # 令牌密钥(兼容旧版本)
secret: custom secret: custom
# HTTP Client 配置
http:
client:
# 连接超时(毫秒)
connect-timeout: 5000
# 读取超时(毫秒)
read-timeout: 30000
# 连接池最大连接数
pool-max-connections: 50
# 连接池获取连接超时(毫秒)
pool-acquire-timeout: 2000
# Resilience4j 重试配置
resilience4j:
retry:
configs:
default:
# 最大重试次数
max-attempts: 3
# 初始等待时间
wait-duration: 500ms
# 启用指数退避
enable-exponential-backoff: true
# 指数退避倍数
exponential-backoff-multiplier: 2
# 触发重试的异常
retry-exceptions:
- java.util.concurrent.TimeoutException
- java.io.IOException
- java.net.ConnectException
- org.springframework.web.reactive.function.client.WebClientResponseException
# 不触发重试的异常
ignore-exceptions:
- com.jomalls.custom.integrate.exception.RemoteServiceException
instances:
remoteApi:
base-config: default
# Actuator 管理端点
management:
endpoints:
web:
base-path: /api/v3/actuator
exposure:
include: metrics
# Custom Server — 主配置文件
# 服务器配置
server:
port: 40071
servlet:
context-path: /
tomcat:
uri-encoding: UTF-8
accept-count: 1000
threads:
max: 200
min-spare: 100
# 自定义,是否需要认证(测试时可以不认证)
needAuthentication: true
# 自定义,ERP系统基础认证信息
erpRequestToken: 70d8f63fe598a0d815c29d0d8a15d55b699844463d0485b505ddbc7e04ee034a
# 自定义,saasAdmin管理后台地址,获取类别信息
admin:
base-url: https://admin.jomalls.com
# Spring 配置 # Spring 配置
spring: spring:
application: # 数据源配置
name: custom-server
main:
allow-circular-references: true
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
# 数据源配置,配置正式环境数据源
datasource: datasource:
url: jdbc:mysql://121.40.229.7:3306/foxpsd-lizh?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false url: jdbc:mysql://172.16.19.99:3306/foxpsd-lizh?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false
username: foxpsd-private username: root
password: testJm2025@$ password: joshine
driver-class-name: com.mysql.cj.jdbc.Driver # Redis 配置
hikari:
# 最小空闲连接数
minimum-idle: 5
# 最大连接池大小
maximum-pool-size: 50
# 连接超时时间(60 秒)
connection-timeout: 60000
# 空闲连接超时时间(600 秒)
idle-timeout: 600000
# 最大连接生命周期(900 秒)
max-lifetime: 900000
# 验证超时时间(3 秒)
validation-timeout: 3000
# Redis 配置,配置正式环境redis地址
data: data:
redis: redis:
host: 172.16.19.1 host: 172.16.19.100
port: 6379 port: 6379
password: joshine.dev password: joshine.dev
database: 7 database: 7
# 读取/写入超时(毫秒)
timeout: 5000
# 连接超时(毫秒)
connect-timeout: 3000
# Jedis 连接池配置
pool:
max-active: 8
max-idle: 4
min-idle: 2
# Lettuce 连接池配置(Spring Data Redis 使用)
lettuce:
pool:
enabled: true
max-active: 8
max-idle: 4
min-idle: 2
max-wait: 5000
# Redisson 特有配置
redisson:
# 重试次数
retry-attempts: 3
# 重试间隔(毫秒)
retry-interval: 1000
# 心跳间隔(毫秒)
ping-interval: 60000
# 空闲连接超时(毫秒)
idle-timeout: 10000
# SpringDoc OpenAPI 配置
springdoc:
api-docs:
path: /api-docs
swagger-ui:
path: /swagger-ui.html
# MyBatis-Plus 配置
mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml
type-aliases-package: com.jomalls.custom.domain.dal.entity
configuration:
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: auto
# 令牌配置 # 令牌配置
token: token:
header: Authorization header: Authorization
# 令牌密钥(兼容旧版本) # 令牌密钥(兼容旧版本)
secret: custom secret: custom
\ No newline at end of file
# HTTP Client 配置
http:
client:
# 连接超时(毫秒)
connect-timeout: 5000
# 读取超时(毫秒)
read-timeout: 30000
# 连接池最大连接数
pool-max-connections: 50
# 连接池获取连接超时(毫秒)
pool-acquire-timeout: 2000
# Resilience4j 重试配置
resilience4j:
retry:
configs:
default:
# 最大重试次数
max-attempts: 3
# 初始等待时间
wait-duration: 500ms
# 启用指数退避
enable-exponential-backoff: true
# 指数退避倍数
exponential-backoff-multiplier: 2
# 触发重试的异常
retry-exceptions:
- java.util.concurrent.TimeoutException
- java.io.IOException
- java.net.ConnectException
- org.springframework.web.reactive.function.client.WebClientResponseException
# 不触发重试的异常
ignore-exceptions:
- com.jomalls.custom.integrate.exception.RemoteServiceException
instances:
remoteApi:
base-config: default
# Actuator 管理端点
management:
endpoints:
web:
base-path: /api/v3/actuator
exposure:
include: metrics
# Custom Server — 主配置文件
# 服务器配置
server:
port: 40071
servlet:
context-path: /
tomcat:
uri-encoding: UTF-8
accept-count: 1000
threads:
max: 200
min-spare: 100
# 自定义,是否需要认证(测试时可以不认证)
needAuthentication: true
# 自定义,ERP系统基础认证信息
erpRequestToken: 70d8f63fe598a0d815c29d0d8a15d55b699844463d0485b505ddbc7e04ee034a
# 自定义,saasAdmin管理后台地址,获取类别信息
admin:
base-url: https://admin.jomalls.com
# Spring 配置
spring:
application:
name: custom-server
main:
allow-circular-references: true
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
# 数据源配置,配置正式环境数据源
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
# 最小空闲连接数
minimum-idle: 5
# 最大连接池大小
maximum-pool-size: 50
# 连接超时时间(60 秒)
connection-timeout: 60000
# 空闲连接超时时间(600 秒)
idle-timeout: 600000
# 最大连接生命周期(900 秒)
max-lifetime: 900000
# 验证超时时间(3 秒)
validation-timeout: 3000
# Redis 配置,配置正式环境redis地址
data:
redis:
# 读取/写入超时(毫秒)
timeout: 5000
# 连接超时(毫秒)
connect-timeout: 3000
# Jedis 连接池配置
pool:
max-active: 8
max-idle: 4
min-idle: 2
# Lettuce 连接池配置(Spring Data Redis 使用)
lettuce:
pool:
enabled: true
max-active: 8
max-idle: 4
min-idle: 2
max-wait: 5000
# Redisson 特有配置
redisson:
# 重试次数
retry-attempts: 3
# 重试间隔(毫秒)
retry-interval: 1000
# 心跳间隔(毫秒)
ping-interval: 60000
# 空闲连接超时(毫秒)
idle-timeout: 10000
# SpringDoc OpenAPI 配置
springdoc:
api-docs:
path: /api-docs
swagger-ui:
path: /swagger-ui.html
# MyBatis-Plus 配置
mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml
type-aliases-package: com.jomalls.custom.domain.dal.entity
configuration:
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: auto
# 令牌配置
token:
header: Authorization
# 令牌密钥(兼容旧版本)
secret: custom
# HTTP Client 配置
http:
client:
# 连接超时(毫秒)
connect-timeout: 5000
# 读取超时(毫秒)
read-timeout: 30000
# 连接池最大连接数
pool-max-connections: 50
# 连接池获取连接超时(毫秒)
pool-acquire-timeout: 2000
# Resilience4j 重试配置
resilience4j:
retry:
configs:
default:
# 最大重试次数
max-attempts: 3
# 初始等待时间
wait-duration: 500ms
# 启用指数退避
enable-exponential-backoff: true
# 指数退避倍数
exponential-backoff-multiplier: 2
# 触发重试的异常
retry-exceptions:
- java.util.concurrent.TimeoutException
- java.io.IOException
- java.net.ConnectException
- org.springframework.web.reactive.function.client.WebClientResponseException
# 不触发重试的异常
ignore-exceptions:
- com.jomalls.custom.integrate.exception.RemoteServiceException
instances:
remoteApi:
base-config: default
# Actuator 管理端点
management:
endpoints:
web:
base-path: /api/v3/actuator
exposure:
include: metrics,health
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<parent> <parent>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server</artifactId> <artifactId>custom-server</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
...@@ -19,13 +19,13 @@ ...@@ -19,13 +19,13 @@
<dependency> <dependency>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server-app</artifactId> <artifactId>custom-server-app</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server-domain</artifactId> <artifactId>custom-server-domain</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
<exclusions> <exclusions>
<exclusion> <exclusion>
<artifactId>hutool-core</artifactId> <artifactId>hutool-core</artifactId>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<groupId>com.jomalls.custom</groupId> <groupId>com.jomalls.custom</groupId>
<artifactId>custom-server</artifactId> <artifactId>custom-server</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>1.0-SNAPSHOT</version> <version>1.0</version>
<properties> <properties>
<java.version>17</java.version> <java.version>17</java.version>
<spring-boot.version>4.0.5</spring-boot.version> <spring-boot.version>4.0.5</spring-boot.version>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment