mirror of
https://git.ittx.com.cn/office-walle/will_server.git
synced 2026-10-19 16:16:57 +00:00
feat(build): 添加JVM标志配置和Java版本检查功能
- 在build.gradle中添加resolveJibJvmFlags方法支持JVM标志配置 - 在jenkins-docker-push.sh中添加JIB_JVM_FLAGS环境变量支持 - 添加JAVA_HOME环境变量配置和路径设置 - 实现Java版本检查确保使用Java 21或更高版本 - 验证Java版本并提供错误提示信息 - 导出JIB_JVM_FLAGS环境变量供构建使用
This commit is contained in:
@@ -10,7 +10,9 @@ ALIYUN_USERNAME=${ALIYUN_USERNAME:-}
|
||||
ALIYUN_PASSWORD=${ALIYUN_PASSWORD:-}
|
||||
JIB_BASE_IMAGE=${JIB_BASE_IMAGE:-eclipse-temurin:21-jre}
|
||||
JIB_TARGET_IMAGE=${JIB_TARGET_IMAGE:-${ALIYUN_REGISTRY}/${ALIYUN_NAMESPACE}/${ALIYUN_IMAGE_NAME}:${ALIYUN_IMAGE_TAG}}
|
||||
JIB_JVM_FLAGS=${JIB_JVM_FLAGS:-}
|
||||
GRADLE_TASK=${GRADLE_TASK:-:wcsApp:jib}
|
||||
JAVA_HOME=${JAVA_HOME:-}
|
||||
|
||||
if [ "$#" -gt 0 ] && [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 [PROJECT_DIR]"
|
||||
@@ -26,6 +28,22 @@ fi
|
||||
|
||||
cd "${WORKSPACE_DIR}"
|
||||
|
||||
if [ -n "${JAVA_HOME}" ]; then
|
||||
export PATH="${JAVA_HOME}/bin:${PATH}"
|
||||
fi
|
||||
|
||||
JAVA_VERSION=$(java -version 2>&1 | awk -F '[".]' '/version/ {print $2}')
|
||||
if [ "${JAVA_VERSION}" = "1" ]; then
|
||||
JAVA_MAJOR=$(java -version 2>&1 | awk -F '[".]' '/version/ {print $3}')
|
||||
else
|
||||
JAVA_MAJOR=${JAVA_VERSION}
|
||||
fi
|
||||
if [ "${JAVA_MAJOR}" -lt 21 ]; then
|
||||
echo "Java version is too low: $(java -version 2>&1 | head -n 1), required Java 21"
|
||||
echo "Please configure Jenkins JDK 21, or set JAVA_HOME=/path/to/jdk-21"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${ALIYUN_USERNAME}" ] || [ -z "${ALIYUN_PASSWORD}" ]; then
|
||||
echo "ALIYUN_USERNAME or ALIYUN_PASSWORD is empty"
|
||||
exit 1
|
||||
@@ -35,6 +53,7 @@ export ALIYUN_USERNAME
|
||||
export ALIYUN_PASSWORD
|
||||
export JIB_BASE_IMAGE
|
||||
export JIB_TARGET_IMAGE
|
||||
export JIB_JVM_FLAGS
|
||||
|
||||
chmod +x gradlew 2>/dev/null || true
|
||||
if [ -x ./gradlew ]; then
|
||||
@@ -43,4 +62,4 @@ else
|
||||
gradle clean "${GRADLE_TASK}" --no-daemon
|
||||
fi
|
||||
|
||||
echo "${APP_NAME} built and pushed by Jib: remote=${JIB_TARGET_IMAGE}"
|
||||
echo "${APP_NAME} built and pushed by Jib: remote=${JIB_TARGET_IMAGE}"
|
||||
|
||||
@@ -35,6 +35,15 @@ jib {
|
||||
mainClass = 'com.will.wcsApp.WcsAppApplication'
|
||||
ports = ['8080']
|
||||
environment = [TZ: 'Asia/Shanghai']
|
||||
jvmFlags = resolveJibJvmFlags()
|
||||
creationTime = 'USE_CURRENT_TIMESTAMP'
|
||||
}
|
||||
}
|
||||
|
||||
static List<String> resolveJibJvmFlags() {
|
||||
String flags = System.getenv('JIB_JVM_FLAGS')
|
||||
if (flags == null || flags.isBlank()) {
|
||||
return []
|
||||
}
|
||||
return flags.trim().split('\\s+').findAll { it }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user