GitLab CI发布Release时如何仅上传打包好的Jar包?
解决GitLab CI Release仅发布Jar包的问题
问题根源
你的配置存在两个核心问题:
- build阶段未输出artifacts:导致release阶段无法获取到构建好的.jar文件,只能重新克隆项目源码,最终发布时自然缺失Jar包。
- GitLab默认生成源码归档:Release页面中显示的“项目源码包”是GitLab基于tag自动生成的默认归档,并非CI job上传的内容。
修正步骤
1. 确保build阶段传递Jar包 artifacts
修改build任务,添加artifacts配置,仅将构建生成的Jar包传递给后续的release阶段:
build: stage: build script: - mvn clean package artifacts: paths: - target/*.jar # 仅传递构建好的Jar包 expire_in: 1d # 可选:设置artifacts过期时间,节省存储空间
2. 确保release阶段正确生成并发布Jar包
你的release任务逻辑基本正确,结合修正后的build阶段配置,完整CI配置如下:
build: stage: build script: - mvn clean package artifacts: paths: - target/*.jar expire_in: 1d release: stage: release needs: - job: build artifacts: true script: - mv target/*.jar project.jar artifacts: paths: - project.jar # 仅发布这个Jar包 release: name: 'Awesome Project' description: 'Awesome description' tag_name: 'Awesome'
3. 可选:移除自动生成的源码归档
如果要彻底移除Release页面中的源码包,可以通过项目设置关闭:
- 进入项目的 Settings > Repository
- 找到 Tags 区域,取消勾选 Create archive of source files when a tag is created
- 保存设置后,后续创建的Release将不再包含自动生成的源码归档
内容的提问来源于stack exchange,提问作者membersound
相关产品推荐
相关产品推荐

