You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在bitbucket-pipelines.yml中合并Jar包构建与部署步骤?

解决Bitbucket Pipelines分步骤构建与部署的方案

核心思路是利用Bitbucket Pipelines的**工件(artifacts)**机制,在构建步骤中把生成的Jar包标记为工件,让部署步骤可以直接读取该文件,同时保持构建、部署使用各自镜像,避免单镜像下的存储不足问题。

具体配置示例

假设构建步骤用Java镜像,部署步骤用Ubuntu镜像,参考配置如下:

image: openjdk:17

pipelines:
  default:
    - step:
        name: 构建后端Jar包
        script:
          # 替换为你的实际构建命令,比如Maven或Gradle编译指令
          - mvn clean package -DskipTests
        # 标记需要传递到后续步骤的Jar包路径,根据实际生成位置调整
        artifacts:
          - target/*.jar
    - step:
        name: 部署Jar包
        # 部署步骤使用Ubuntu镜像
        image: ubuntu:latest
        script:
          # Jar包已同步到当前步骤的target目录下,可直接操作
          - ls -la target/
          # 添加你的部署命令,比如通过scp上传到服务器
          - scp target/your-app.jar user@server:/path/to/deploy/
        # 部署前安装必要依赖(如SSH客户端)
        before-script:
          - apt-get update && apt-get install -y openssh-client

关键说明

  • artifacts字段:构建步骤通过该字段指定需保留的文件/目录,Bitbucket会自动将这些文件上传至临时存储,供后续步骤下载使用。路径需与Jar包实际生成位置匹配,比如Maven默认是target/*.jar,Gradle通常是build/libs/*.jar。
  • 步骤隔离优势:每个步骤使用专属镜像,构建用Java镜像保证编译环境,部署用Ubuntu镜像满足部署工具依赖,避免单镜像下的存储资源占用过高问题。
  • 敏感信息处理:部署时的服务器密码、SSH密钥等敏感内容,不要硬编码在配置里,用Bitbucket的仓库变量或安全变量存储,脚本中直接引用即可(如$SSH_PRIVATE_KEY)。

额外优化建议

  • 如果Jar包体积过大,可在构建步骤中先压缩(如zip target/app.zip target/your-app.jar),再将压缩包标记为工件,部署步骤解压后再执行部署,减少传输体积。
  • 若部署步骤需要频繁使用特定依赖,可提前制作包含依赖的自定义Ubuntu镜像,上传到容器仓库,直接在部署步骤引用,省去每次安装依赖的时间。

内容的提问来源于stack exchange,提问作者abidinberkay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:45:38