From 5f2799184c78851cdd4b8d2352b64e91ee663aa8 Mon Sep 17 00:00:00 2001 From: panjunjie <46790855@qq.com> Date: Mon, 11 Aug 2025 12:07:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20java-mall-app-shop-admin/J?= =?UTF-8?q?enkinsfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java-mall-app-shop-admin/Jenkinsfile | 85 +++++++++++++++++++--------- 1 file changed, 59 insertions(+), 26 deletions(-) diff --git a/java-mall-app-shop-admin/Jenkinsfile b/java-mall-app-shop-admin/Jenkinsfile index f44e67b..8158243 100644 --- a/java-mall-app-shop-admin/Jenkinsfile +++ b/java-mall-app-shop-admin/Jenkinsfile @@ -2,62 +2,95 @@ pipeline { agent any tools { + // 指定使用NodeJS18版本(需在Jenkins全局工具配置中提前配置该名称) nodejs 'NodeJS18' } environment { - // 主项目部署路径 - DEPLOY_DIR = '/data/nginx/www/fafamall/demo' + // UniApp项目所在目录 + UNIAPP_DIR = 'java-mall-app-shop-admin' + // 打包目标平台(可改为mp-weixin、app-plus等) + TARGET_PLATFORM = 'h5' + // 打包输出路径 + OUTPUT_DIR = "${UNIAPP_DIR}/dist/build/${TARGET_PLATFORM}" + // 部署目标路径(根据实际需求修改) + DEPLOY_PATH = '/data/nginx/www/demo' } stages { stage('拉取代码') { steps { checkout scm - echo "代码检出完成,当前工作目录: ${env.WORKSPACE}" + echo "代码拉取完成,当前工作目录: ${env.WORKSPACE}" } } - // 主项目构建部署(保持不变) - stage('安装主项目依赖') { + stage('安装项目依赖') { steps { - sh ''' - cd java-mall-app-shop-admin - rm -rf node_modules package-lock.json - npm config set registry https://registry.npmmirror.com - npm install - ''' + sh """ + # 进入UniApp项目目录 + cd ${UNIAPP_DIR} || { + echo "错误:UniApp项目目录 ${UNIAPP_DIR} 不存在!" + exit 1 + } + + # 清理旧依赖和缓存 + rm -rf node_modules package-lock.json + + # 使用国内镜像源加速安装 + npm config set registry https://registry.npmmirror.com + + # 安装依赖并显示版本信息 + echo "当前NodeJS版本: \$(node -v)" + echo "当前npm版本: \$(npm -v)" + npm install + """ } } - stage('构建主项目') { + stage('UniApp打包构建') { steps { - sh ''' - cd java-mall-app-shop-admin - npm run build - ''' + sh """ + cd ${UNIAPP_DIR} + + # 直接使用vue-cli-service执行打包(无需依赖package.json脚本) + echo "开始打包${TARGET_PLATFORM}平台..." + npx vue-cli-service uni-build \ + --mode production \ + --platform ${TARGET_PLATFORM} + + # 验证打包结果 + if [ ! -d "${OUTPUT_DIR}" ]; then + echo "错误:打包失败,未生成输出目录 ${OUTPUT_DIR}!" + exit 1 + fi + + echo "${TARGET_PLATFORM}平台打包完成,输出目录: ${OUTPUT_DIR}" + """ } } - stage('部署主项目') { + stage('部署到服务器') { steps { - sh ''' - mkdir -p ${DEPLOY_DIR} - rm -rf ${DEPLOY_DIR}/* - cd java-mall-app-shop-admin - cp -r dist/build/h5/* ${DEPLOY_DIR}/ - ''' + sh """ + # 创建部署目录 + mkdir -p ${DEPLOY_PATH} + + # 复制打包产物到部署目录 + cp -r ${OUTPUT_DIR}/* ${DEPLOY_PATH}/ + + echo "成功部署到 ${DEPLOY_PATH}" + """ } } - } post { success { - echo '主项目及UniApp项目打包部署成功' + echo "UniApp项目(${TARGET_PLATFORM})打包部署成功!" } failure { - echo '项目构建或部署失败' + echo "UniApp项目打包部署失败,请查看详细日志!" } } }