
1. 项目背景与核心价值在Windows内网环境下搭建JenkinsGiteeVue的自动化部署体系本质上是在解决企业级开发中的三个痛点问题代码版本管理混乱、手动部署效率低下、内网环境下的工具链适配。这套组合方案的优势在于全流程闭环从代码提交到生产部署完全自动化减少人为干预内网兼容性所有组件均支持离线安装和配置适应企业安全要求技术栈匹配Vue项目的构建特性与Jenkins的管道能力高度契合我曾在金融行业IT部门实施过类似方案实测部署效率提升70%以上。下面将拆解每个环节的技术实现细节。2. 环境准备与工具选型2.1 基础软件清单组件版本要求下载方式Jenkins2.346.1 LTS官网war包或Windows安装包JDK11或17Oracle官方ZIP包Node.js16.x LTS二进制包Git2.35Portable版本Gitee插件1.2.7Jenkins插件中心注意内网环境需提前下载所有安装包到本地。建议建立/tools目录统一存放避免路径混乱2.2 网络配置要点代理设置如有set HTTP_PROXYhttp://proxy.example.com:8080 set HTTPS_PROXYhttp://proxy.example.com:8080Hosts文件修改192.168.1.100 gitee.com防火墙放行Jenkins默认端口8080Gitee SSH端口223. Jenkins核心配置实战3.1 安全初始化首次启动后访问http://localhost:8080需完成从%JENKINS_HOME%/secrets/initialAdminPassword获取解锁密码安装推荐插件时选择无内网需手动安装创建管理员账户建议使用jenkins_admin这类独立账号3.2 关键插件安装按优先级排序Gitee Plugin实现代码仓库联动NodeJS Plugin管理Vue构建环境Publish Over SSH内网服务器部署Pipeline编排部署流程插件离线安装步骤# 将.hpi文件放入plugins目录 Copy-Item .\gitee.hpi $env:JENKINS_HOME\plugins\ # 重启服务 Restart-Service Jenkins3.3 系统工具配置NodeJS路径C:\Program Files\nodejs\node.exeGit路径C:\Git\bin\git.exeJDK路径C:\Java\jdk-17.0.24. Gitee仓库对接方案4.1 SSH密钥配置生成密钥对ssh-keygen -t rsa -b 4096 -C jenkinsgitee.com将公钥添加到Gitee账户的SSH Keys私钥存入Jenkins的Credentials类型选SSH Username with private key4.2 Webhook设置在Gitee仓库的管理→WebHooks添加URL: http://[内网IP]:8080/gitee-project/[项目名]触发事件勾选Push事件Merge Request事件实测坑点内网环境需配置反向代理才能让Gitee回调成功5. Vue项目流水线设计5.1 Jenkinsfile示例pipeline { agent any environment { NODEJS_HOME tool NodeJS16 PATH $NODEJS_HOME/bin;$PATH } stages { stage(Checkout) { steps { git branch: main, credentialsId: gitee-ssh, url: gitgitee.com:yourgroup/yourrepo.git } } stage(Build) { steps { bat npm install --registryhttp://internal-npm.registry bat npm run build archiveArtifacts artifacts: dist/**, fingerprint: true } } stage(Deploy) { steps { sshPublisher( publishers: [ sshPublisherDesc( configName: prod-server, transfers: [ sshTransfer( sourceFiles: dist/**, removePrefix: dist, remoteDirectory: /webapps/vue-project ) ] ) ] ) } } } }5.2 构建优化技巧依赖缓存stage(Cache) { steps { bat npm config set cache .npm_cache --global bat npm install --prefer-offline } }多环境配置// vue.config.js module.exports { publicPath: process.env.NODE_ENV production ? http://internal-cdn.com/vue-project/ : / }6. 内网部署专项方案6.1 离线NPM仓库搭建使用Verdaccio搭建私有仓库npm install -g verdaccio verdaccio --listen 4873同步必要依赖npm --registry http://registry.npmjs.org install vue3.2.37 npm publish --registry http://localhost:48736.2 部署目标机配置使用WinSCP批处理实现文件同步echo off set SRC\\build-server\dist set DESTD:\webroot robocopy %SRC% %DEST% /MIR /NP /R:3 /W:5IIS站点绑定New-WebBinding -Name Default Web Site -IP * -Port 80 -HostHeader vueapp.internal7. 故障排查手册7.1 常见错误代码错误现象解决方案403 No valid crumb管理界面→安全设置→取消防止跨站点请求伪造SSH连接超时检查~/.ssh/config是否包含Gitee域名npm install卡住设置strict-sslfalse或换国内镜像Jenkins节点离线检查JNLP端口默认50000防火墙规则7.2 日志分析要点构建日志%JENKINS_HOME%\jobs\[项目名]\builds\[编号]\logGitee插件日志%JENKINS_HOME%\gitee.log关键过滤词ERROR [Gitee]npm ERR!Permission denied8. 安全加固建议Jenkins访问控制// 启用矩阵权限 matrix { permissions { group(developers) { permissions hudson.model.Item.Build } } }构建环境隔离# 使用独立用户运行 $cred New-Object System.Management.Automation.PSCredential( jenkins_build, (ConvertTo-SecureString Pssw0rd -AsPlainText -Force) ) Start-Process -Credential $cred -FilePath java -ArgumentList -jar jenkins.war这套方案在多个金融项目中的落地实践证明通过合理的配置优化即使在完全离线的Windows环境中也能实现平均3分钟完成从代码提交到生产部署的全流程。对于需要更高安全级别的场景建议增加Harbor私有镜像仓库环节将构建产物容器化后再分发。