package.sh 2.37 KB
#!/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