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

Jenkins升级后@libs目录命名变更,如何恢复原命名方式?

能否恢复Jenkins @libs目录的旧命名方式(用库名而非UUID)

问题描述

我在将旧版Jenkins 2.204迁移到2.361.1版本后,Groovy脚本出现路径引用故障,原因是@libs目录的命名规则发生了变化:

  • 旧版目录结构:D:\jenkins_workspace\<workspace name>@libs\PC_Lib\PC_Scripts
  • 新版目录结构:D:\jenkins_workspace\<workspace name>@libs\<UUID>\PC_Scripts

当前环境:Windows Server 2022,Jenkins 2.361.1,SCM为Subversion 1.8,脚本中的路径引用为:

def SCRIPT_PATH = "${env.WORKSPACE}@libs/PC_Lib/PC_Scripts"

请问是否可以恢复使用直接指定库名的旧命名方式,而非UUID?


解决方案

可以通过以下方式尝试恢复旧命名逻辑:

  • 调整Jenkins全局Subversion配置
    进入Jenkins的「Manage Jenkins」→「Configure System」→「Subversion」板块,查找是否有「External Library Directory Naming」或类似选项。部分版本的SVN插件提供了切换命名规则的开关,可选择使用库名而非UUID作为目录名。

  • 检查SVN插件版本与配置项
    目录命名变化大概率是Jenkins SVN插件版本升级带来的行为变更。可以查看当前SVN插件的版本,对比旧版插件的配置项,确认是否有保留旧命名逻辑的设置。如果插件默认移除了该选项,也可以考虑降级插件到与旧版Jenkins兼容的版本(注意兼容性风险)。

  • 临时脚本适配(workaround)
    如果暂时无法修改配置,可以调整Groovy脚本动态定位目标目录:

    def libsDir = new File("${env.WORKSPACE}@libs")
    def targetDir = libsDir.listFiles().find { dir -> 
        dir.isDirectory() && new File(dir, "PC_Scripts").exists()
    }
    def SCRIPT_PATH = targetDir?.absolutePath ?: "${env.WORKSPACE}@libs/PC_Lib/PC_Scripts"
    

    这段代码会遍历@libs下的所有目录,自动找到包含PC_Scripts的目录作为目标路径。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:25:14