Bitbucket Pipelines无法找到归档文件问题求助
Bitbucket Pipelines构建后上传S3找不到JAR文件的解决方法
核心问题
默认流水线和自定义流水线是独立运行的容器,彼此的文件系统不共享,默认流水线生成的JAR不会自动出现在自定义流水线的环境中,这就是找不到文件的根本原因。
具体修复步骤
1. 用工件(Artifacts)传递构建产物
修改bitbucket-pipelines.yml,在默认流水线的构建步骤里把JAR标记为工件,让自定义流水线能访问到它:
pipelines: default: - step: name: 构建JAR包 script: - ./mvnw package -DskipTests # 替换成你的实际构建命令 artifacts: - target/pow-wow-0.0.2-SNAPSHOT.jar # 必须和生成的JAR路径完全一致 custom: deploy-to-s3: - step: name: 上传到S3 script: - aws s3 cp target/pow-wow-0.0.2-SNAPSHOT.jar s3://你的桶名/目标路径/ # 确保这里配置了AWS访问密钥等权限凭证
2. 验证路径正确性
在自定义流水线的脚本开头加目录查看命令,确认JAR是否存在,方便排查路径错误:
custom: deploy-to-s3: - step: name: 上传到S3 script: - ls -la target/ # 打印目录内容,确认JAR是否存在 - aws s3 cp target/pow-wow-0.0.2-SNAPSHOT.jar s3://你的桶名/目标路径/
3. 检查appspec.yml路径配置(若用CodeDeploy)
如果部署涉及AWS CodeDeploy,确认appspec.yml里的源路径和自定义流水线中JAR的实际路径一致:
version: 0.0 os: linux files: - source: /target/pow-wow-0.0.2-SNAPSHOT.jar destination: /opt/你的应用目录/
4. 避免重复构建(可选)
自定义流水线无需再执行构建命令,直接使用默认流水线传递的工件即可,减少冗余操作。
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

