Jenkins配置git打包时出现submodule错误

jenkin构建报错信息及解决方案 Jenkins报错信息记录 阅读详情

如下:

Unable to checkout '111c7b4fb941a7c03b2c6466b111d0939e3de58e' in submodule path 'src/main/resources/***'

	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2372)
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1985)
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:80)
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$7.lambda$execute$0(CliGitAPIImpl.java:1409)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:253)
	at java.util.concurrent.ExecutorCompletionService.submit(ExecutorCompletionService.java:181)
	at org.jenkinsci.plugins.gitclient.cgit.GitCommandsExecutor.submitRemainingCommand(GitCommandsExecutor.java:75)
	at org.jenkinsci.plugins.gitclient.cgit.GitCommandsExecutor.invokeAll(GitCommandsExecutor.java:64)
Caused: hudson.plugins.git.GitException
	at org.jenkinsci.plugins.gitclient.cgit.GitCommandsExecutor.checkResult(GitCommandsExecutor.java:87)
	at org.jenkinsci.plugins.gitclient.cgit.GitCommandsExecutor.invokeAll(GitCommandsExecutor.java:68)
	at org.jenkinsci.plugins.gitclient.cgit.GitCommandsExecutor.invokeAll(GitCommandsExecutor.java:47)
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$7.execute(CliGitAPIImpl.java:1412)
	at hudson.plugins.git.extensions.impl.SubmoduleOption.onCheckoutCompleted(SubmoduleOption.java:149)
Caused: java.io.IOException: Could not perform submodule update
	at hudson.plugins.git.extensions.impl.SubmoduleOption.onCheckoutCompleted(SubmoduleOption.java:154)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1223)
	at hudson.scm.SCM.checkout(SCM.java:504)
	at hudson.model.AbstractProject.checkout(AbstractProject.java:1209)
	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
	at hudson.model.Run.execute(Run.java:1816)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:97)
	at hudson.model.Executor.run(Executor.java:429)

需要Jenkins配置时勾选如下:
处理方式1
处理方式2

git submodule在jenkins上使用的坑 submodule是个好东西,配合构建工具的模块化功能在提取代码公共模块非常好用 本地用起来虽然非常爽,但是如果配合jenkins自动化构建就会有一些坑 例如子模块的分支选取,递归update,等问题 默认submodule的分支选取是坑爹的,如果不指定分支则会读取master分支下的代码或者是head游离态下的代码 下面贴下jenkinsfile拉取代码部分的脚本 checkout scm g... 阅读详情

相关推荐

Unity游戏多渠道打包自动化:基于Jenkins与Fastlane的CI/CD实战方案

持续集成与持续部署(CI/CD)是现代软件工程的核心实践,旨在通过自动化构建、测试和部署流程,提升开发效率与软件质量。其核心原理在于将代码变更自动触发一系列标准化操作,减少人工干预,实现快速、可靠的交付。在游戏开发领域,这一技术价值尤为凸显,能够有效应对多平台、多版本、高频次迭代的复杂需求。特别是在Unity移动游戏开发中,面对iOS、Android及众多国内渠道(如华为、小米、TapTap)的SDK集成、证书管理和商店上传等重复性工作,手动处理极易出错且耗时费力。应用自动化流水线,可以将这些繁琐环节串联,

weixin_30487201的博客 367

jenkins 配置git,出现无法连接git仓库的情况

  ERROR: Timeout after 10 minutes ERROR: Error cloning remote repo 'origin' hudson.plugins.git.GitException: Command "git fetch --tags --progress git@github.com:ejenna/wsg.git +refs/heads/*:refs/rem...

ejennahuang的博客 1万+

Unity团队私有资产商店搭建:告别Git Submodule,拥抱Verdaccio+UPM

在游戏开发与软件工程中,依赖管理是保障团队协作效率和项目稳定性的核心技术。传统的Git Submodule通过将子仓库嵌套在主项目中实现代码复用,但其强耦合的版本管理方式常导致环境不一致、操作繁琐等问题,尤其在Unity这类需要快速迭代的开发环境中显得笨重。现代包管理技术通过解耦依赖关系与版本控制,提供了更优雅的解决方案。Unity Package Manager(UPM)作为官方原生工具,实现了依赖的自动解析、版本锁定和可视化操作,极大提升了开发体验。然而,官方UPM仅支持公共注册表,无法满足团队内部私有

weixin_33827590的博客 384

【Jenkins】解决检出git仓库时报错Caused by: java.io.IOException: Cannot run program “git“

Jenkins中配置从一个win7的slave节点检出git仓库时报如下错误: git init E:\jenkins\workspace\Git-backup # timeout=10 ERROR: Error cloning remote repo 'origin' hudson.plugins.git.GitException: Could not init E:\jenkins\workspace\Git-backup at org.jenkinsci.plugins.gitclient.Cli

BUG_88的博客 4149

Git克隆指定分支:生产环境分支拉取决策指南

Git克隆分支并非简单命令调用,而是涉及引用体系(refs/heads/*、refs/remotes/origin/*)、fetch行为与对象图裁剪的核心机制。理解`--single-branch`如何重写refspec、`--depth=1`如何限制提交历史,是保障CI构建轻量性、环境一致性与子模块可靠性的技术前提。该能力直接支撑DevOps流水线优化、开源贡献入口设计及离线代码审计等关键场景。本文聚焦真实工程约束下的分支克隆选型逻辑,覆盖参数原理、陷阱排查与LFS/子模块协同方案。

Hi, Sun 397

IntelliJ IDEA 2024.2 Git 配置与 GitHub 推送:3 种认证方式与 2 种常见错误修复

本文详细介绍了IntelliJ IDEA 2024.2中Git配置与GitHub推送的3种认证方式(密码、Token、SSH),并提供了两种常见错误(SSL_ERROR_SYSCALL和403 Forbidden)的修复方法。通过实战指南帮助开发者高效完成Git环境准备、项目推送及团队协作配置,提升版本控制效率。

weixin_30791095的博客 373

git submodule update --init 失败解决办法

我们在github上寻找开源项目的源码,clone下来研究的时候,由于项目需要多个开源项目的支持,所有还需要二次clone子工程的源码支持,比如最近在使用: grpc 在clone子模块的时候会出现失败或无法访问的情况,其原因众所周知无非就是有些东西需要科学上网 找到项目的.gitmodules文件,这个文件就是子工程的clone path 以及clone的位置: 我们只需要找到url对应的可访问地址,这里给出两个结局的方案,也是我常用的方案: 使用github镜像地址:https://githu.

sunjindeng123的博客 1万+

CentOS 8 Git安装与配置:SELinux、RPM安全策略与企业级实践

Git 是分布式版本控制的核心工具,其在 Linux 系统中的部署远不止执行安装命令——尤其在以安全合规为优先的 CentOS 8 环境中。该系统基于 RPM 包管理与强制 SELinux 模式,决定了 Git 的版本选择、二进制信任链、文件上下文标签及跨用户协作权限模型均需深度适配。理解 git-core 包的 Red Hat 安全补丁机制、restorecon 对 SELinux 上下文的修复作用,以及系统级与用户级配置的覆盖逻辑,是实现稳定 CI/CD 和等保合规的前提。本文聚焦 CentOS 8 特

453

Ubuntu 20.04 Git安装:版本治理与现代工作流适配指南

Git 是分布式版本控制的核心工具,其命令行接口、子模块管理、换行符处理等能力直接影响协作效率与CI/CD稳定性。在长期支持的 Ubuntu 20.04 系统中,APT 默认提供的 Git 2.25.1 版本严重滞后于官方最新版(2.45.x),缺失 git restore、git switch 等现代工作流命令,并存在 NFS 兼容性、LFS 内存泄漏、SSL/TLS 握手异常等已修复缺陷。因此,Git 安装不再只是包管理操作,而是涉及版本选型、路径隔离、环境变量治理与跨平台一致性保障的系统性工程。本文聚

shirlly 372

CI/CD工具选型实战指南:Jenkins、GitLab CI与Buildbot深度对比

CI/CD(持续集成与持续交付)是现代软件工程的核心实践,其本质是将代码变更自动化地转化为可验证、可部署的软件制品。实现这一目标依赖于调度引擎、执行环境、状态追踪与反馈闭环四大能力。不同工具在插件生态、YAML契约性、原子性保障等维度存在根本差异:Jenkins以Groovy脚本和1800+插件提供高度灵活性,但也带来离线安装插件、插件依赖冲突等运维负担;GitLab CI通过.gitlab-ci.yml实现声明式编排,但缓存失效、Runner资源争抢等问题频发;Buildbot则凭借Python原生配置与

weixin_30394669的博客 468

FreeBSD 11.0 安装可用 Git 的完整实践指南

Git 是分布式版本控制的核心工具,其在类 Unix 系统中的正确部署依赖于编译器、SSL 库、正则引擎与线程模型的协同适配。FreeBSD 11.0 作为基于 GCC 4.8.5 和 OpenSSL 1.0.2j 的经典稳定分支,存在 TLSv1.2 支持不足、POSIX 线程语义缺失、PCRE 和 Python 扩展默认禁用等底层限制,导致 `pkg install git` 获取的 Git 2.7.x 版本无法满足现代 CI/CD、UTF-8 路径处理及 `git push --force-with-

weixin_34345753的博客 356

AIGC项目Git+GitHub+SSH最小可行配置指南

Git是软件开发中用于版本控制的基础工具,其核心原理在于通过快照机制追踪文件变更、利用分布式架构保障协作可靠性。在AI生成内容(AIGC)工程实践中,Git的技术价值远超代码管理——它承担着模型权重、Prompt模板、评估脚本等关键资产的协同分发与CI/CD流水线驱动任务。典型应用场景包括克隆含子模块的Hugging Face仓库、推送GB级.safetensors模型文件、在GitHub Actions中安全拉取私有依赖。由于2021年后GitHub已弃用密码认证,且Personal Access Tok

weixin_30731305的博客 350

Git LFS 原理与实战:解决大文件版本控制难题

Git 是基于快照的分布式版本控制系统,其原生设计对二进制大文件支持薄弱——每次修改都会生成完整副本,导致仓库臃肿、克隆缓慢、协作低效。Git LFS(Large File Storage)并非插件式优化,而是通过指针文件机制,在 Git 协议层之上构建独立的大文件托管体系:将真实二进制内容替换为轻量文本指针,由专用服务端存储与分发。这一设计既保留了文件在 Git 历史中的可追溯性(支持 git log/blame),又显著提升 clone、checkout、status 等操作性能。广泛应用于游戏开发、A

FLY_THINK2012的博客 436

Jenkins Blue Ocean 流水线实战:5个阶段构建Gitea前端项目,优化构建速度30%

本文详细介绍了如何使用Jenkins Blue Ocean构建Gitea前端项目的五阶段流水线,并优化构建速度30%。通过环境准备、流水线架构设计、构建速度优化方案及Blue Ocean实战技巧,帮助开发者实现高效的自动化部署,提升CI/CD流程的效率和可靠性。

weixin_33739541的博客 417

Debian 10安装Git:绕过2.20.1版本陷阱的三种实战方案

Git是分布式版本控制的核心工具,其工作原理基于对象数据库、引用日志与三棵树(Working Directory、Index、HEAD)协同机制。在Linux发行版中,Git的版本演进直接关联SSH密钥算法兼容性、子模块解析逻辑、Windows路径规范化等关键能力。Debian 10因LTS稳定性策略将Git锁定在2.20.1,导致无法支持git restore、git switch等现代命令,并引发OpenSSH 8.8+算法不匹配、相对路径子模块克隆失败等工程故障。本文聚焦Debian 10(buste

weixin_30299709的博客 368

Debian 8 安装 Git 的三种方案与避坑指南

Git 是分布式版本控制的核心工具,其工作原理依赖配置层级、依赖库兼容性及底层系统调用(如 openat、getpwuid)。在老旧发行版如 Debian 8 上,原生 Git 2.1.4 存在功能缺失、安全漏洞和配置冲突等技术局限,导致 `fatal: not a git repository` 和 `git config user.email` 异常等高频问题。其技术价值在于支撑 CI/CD、嵌入式固件开发与工业级持续集成,典型应用场景包括产线测试机、自托管 GitHub Actions runner

519

5分钟集成GoogleTest到Jenkins/GitLab CI:C++项目自动化测试实战

持续集成(CI)是现代软件开发的核心实践,它通过自动化代码构建、测试和部署流程,确保软件质量与交付效率。其核心原理在于将开发者的每次提交都触发一个标准化的验证过程,从而快速发现集成错误。对于C++项目而言,结合GoogleTest单元测试框架与CI工具,能构建起高效的质量保障体系,尤其适用于需要频繁迭代和团队协作的中大型工程。本文以GoogleTest和Jenkins/GitLab CI的集成为例,详解如何通过配置CMake、编写流水线脚本,在5分钟内搭建一套从代码提交到测试报告生成的完整自动化流程,涵盖环

weixin_33919950的博客 446

APP抓包-代理转发绕过反代理+Xposed绕过证书校验

而这里的牛牛不止设置了反代理还设置了证书校验,一闪而过的三个数据包就是在校验证书。而proxifier工具的转发机制获取的是网络接口出口数据,相当于是在网络接口设代理。这个时候就可以在夜神打开牛牛开始抓包了,打开牛牛可以看到proxifier有夜神流量通过。关闭代理之后牛牛就正常了,可恶的牛牛啊,这样我没办法抓包啊,怎么办啊。模拟器开启代理,burp开启监听。打开牛牛app,牛牛不在报错。牛牛app检测的是系统代理,也就是在模拟器或手机上设置的代理。再在浏览器下载两个模块,在夜神安装,用来屏蔽证书校验。

xiaoheizi的博客 7530

维护源码检出:构建可验证、可追溯、可回滚的代码快照体系

源码检出(source checkout)是软件交付链路中保障代码状态确定性的基础环节,其本质远超简单的 git pull 操作,涉及 Git 分支同步、子模块管理、浅克隆处理、工作区洁净性控制等核心原理。在 CI/CD、GitOps 和容器化部署场景下,checkout 状态失准将直接导致构建不一致、镜像版本混乱、生产回滚失败等严重问题。通过引入 commit 哈希校验、submodule 递归更新、深度克隆策略及多层运行时验证机制,可系统性提升代码加载的可信度与可观测性。本文聚焦于企业级工程实践中‘ma

weixin_34343308的博客 447

Android 性能之 Game Mode

本文的目的是介绍 AOSP Game Mode 功能。Game Mode 功能的核心是系统服务 GameManagerService,在本文中用 GMS 指代 GameManagerService。在 API 26 之后,应用开发者可以通过将应用的 category 属性设置为 "game",使系统(即 GMS)能够将该应用识别为 "游戏"。GMS 定义了 4 种 game mode,即 1|2|3|4|standard|performance|battery|custom;

专注于系统快稳省领域 3061

MPU6050 vs BMX055 vs ICM20602:如何为你的项目选择最佳陀螺仪(附实测数据对比)

本文深度对比了MPU6050、BMX055和ICM20602三款主流六轴IMU传感器的核心性能。通过实测数据,分析了它们在精度、噪声、温漂、接口速度及资源占用上的差异,并提供了从项目需求出发的选型指南,帮助开发者根据预算、精度要求和处理器性能选择最合适的陀螺仪与加速度计组合。

h0i1j2k3l的博客 969
上一篇: MVC consumes和HttpMessageConverter以及HTTP Status 415 – 不支持的媒体类型
下一篇: redis 集群scan
search1985
博客等级 码龄19年 100粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值