package.sh
2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/bash
# 统一打包脚本
echo "开始打包,当前目录:"
pwd
PROJECT_NAME=$(grep -m 1 "<artifactId>" pom.xml | sed -n 's:.*<artifactId>\(.*\)</artifactId>.*:\1:p')
# 制品库路径前缀配置
REPOSITORY_PACKAGES="VVAS-DataCenter/Store"
FINAL_NAME="${PROJECT_NAME}"
# 获取版本号
TIMESTAMP=$(date +%Y%m%d%H%M%S)
if [ -z "${SPUG_GIT_BRANCH}" ]; then
SPUG_GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown")
fi
if [ -z "${SPUG_GIT_COMMIT_ID}" ]; then
SPUG_GIT_COMMIT_ID=$(git rev-parse HEAD 2>/dev/null | cut -c1-8 || echo "unknown")
fi
VERSION="${SPUG_GIT_BRANCH}-${SPUG_GIT_COMMIT_ID:0:6}"
echo "开始打包: ${FINAL_NAME}, 版本号:${VERSION}"
# 清理并创建临时目录
TEMP_DIR="target/temp-packaging"
rm -rf ${TEMP_DIR}
mkdir -p ${TEMP_DIR}
# 1. 执行Maven打包
echo "步骤1: 检查是否已打jar包: target/*.jar "
if ls target/*.jar 1> /dev/null 2>&1; then
echo "已存在JAR包,继续"
else
echo "[error]未找到JAR包,请先手动执行mvn package打包..."
ls -ltr target/
exit 1
fi
# 2. 复制build目录内容到临时目录
echo "步骤2: 复制配置依赖启动脚本..."
cp -r build/* ${TEMP_DIR}/
# 3. 复制新生成的jar包到临时目录,并重命名为app.jar
echo "步骤3: 复制JAR文件..."
cp target/*.jar ${TEMP_DIR}/
# 4. 创建最终的tar.gz包
echo "步骤4: 创建压缩包..."
tar -czf target/${FINAL_NAME}.tar.gz -C ${TEMP_DIR} .
# 5. 清理临时文件
rm -rf ${TEMP_DIR}
echo "打包完成: target/${FINAL_NAME}.tar.gz"
# 6. 上传到阿里云OSS
echo "步骤5: 上传到阿里云OSS..."
# 构建OSS路径
OSS_BUCKET="oss://spug-software/vion/$REPOSITORY_PACKAGES/$PROJECT_NAME/$VERSION.tar.gz"
# 使用ossutil上传文件
echo "正在上传到: $OSS_BUCKET"
if ossutil cp -f target/${FINAL_NAME}.tar.gz $OSS_BUCKET; then
echo "上传成功,可访问地址进行部署发布: xx"
echo "部署版本号:${VERSION}"
else
echo "上传失败,请检查阿里的云存储工具ossUtil是否存在且正常配置."
echo "ossutil安装: https://help.aliyun.com/zh/oss/developer-reference/install-ossutil2?spm=a2c4g.11186623.help-menu-31815.d_1_2_1_0.1108bca1ocMOlp"
echo "ossutil配置:[default]
accessKeyId=LTAI5tNySTQ71SuojBPaem2H
accessKeySecret=U6katIF9LTPS7emIO2pVDNeJLN6MeX
region=cn-beijing"
exit 1
fi