如何通过Jenkins Job将war包、appspec.yml和scripts文件夹打包为zip文件
Jenkins「Package」任务打包实现方案
以下两种实现方式可按需选择:
方案1:自由风格(Freestyle)项目配置
- 新建Jenkins任务,名称输入「Package」,类型选择「自由风格的软件项目」,确认创建
- 若你的
appspec.yml和scripts文件夹存放在代码仓库中,在「源码管理」模块配置对应git/svn拉取规则,确保构建前工作目录下存在这两个文件/文件夹 - 若war包来自其他Jenkins构建任务:先在原Spring Boot构建任务的「构建后操作」中配置「归档成品」,填入war包路径;再在当前Package任务中添加构建步骤「复制其他项目的成品」,选择原任务名称,配置将war包复制到
target/目录下,保证路径匹配.jenkins\workspace\Package\target\cpproject.war - 添加构建步骤,根据节点操作系统选择对应类型:
- Linux节点选「执行shell」,输入命令:
zip -r deploy-package.zip target/cpproject.war appspec.yml scripts/ - Windows节点选「执行Windows批处理命令」/「执行PowerShell脚本」,输入命令:
Compress-Archive -Path target\cpproject.war, appspec.yml, scripts\* -DestinationPath deploy-package.zip -Force
- Linux节点选「执行shell」,输入命令:
- (可选)在「构建后操作」中添加「归档成品」,填入
deploy-package.zip,构建完成后可直接在任务页面下载打包好的zip文件
方案2:流水线(Pipeline)项目配置
直接使用如下Jenkinsfile配置即可:
pipeline { agent any stages { stage('拉取配置文件') { steps { // 若appspec.yml、scripts存放在代码库,此处配置拉取规则,例如 git url: '你的代码库地址' } } stage('复制war包') { steps { // 若war包来自其他构建任务,取消注释下方代码,替换为你的原任务名称 // copyArtifacts projectName: '你的SpringBoot构建任务名', filter: 'cpproject.war', target: 'target/' } } stage('打包zip包') { steps { // Linux节点使用该命令 sh 'zip -r deploy-package.zip target/cpproject.war appspec.yml scripts/' // Windows节点注释上方命令,使用下方命令 // powershell 'Compress-Archive -Path target\\cpproject.war, appspec.yml, scripts\\* -DestinationPath deploy-package.zip -Force' } } } post { success { // 归档构建产物 archiveArtifacts artifacts: 'deploy-package.zip', fingerprint: true } } }
提示:打包生成的
deploy-package.zip默认存放在Package任务的工作目录根路径,内部目录结构和你给出的路径完全一致,可直接用于后续部署流程。
内容的提问来源于stack exchange,提问作者Subbu
相关产品推荐
相关产品推荐

