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

Jenkins Pipeline使用File Operations Plugin指定目录文件拷贝需求咨询

解决Jenkins File Operations Plugin的精准复制需求

你的问题出在当前的复制规则过于宽泛,会匹配所有目录下的.dll文件,没办法区分VP1和其他VP目录的不同需求。结合你使用的Jenkins v2.73.2、Pipeline 2.5以及File Operations Plugin,我们可以通过拆分复制操作来实现精准控制,具体方案如下:

核心实现思路

我们需要分三个动作完成需求:

  1. 先创建目标目录c:\workspace\Sample
  2. 仅复制Test1/VP1、Test2/VP1下的.dll文件到对应目录
  3. 完整复制Test1/VP2、VP3、VP4和Test2/VP2、VP3、VP4下的所有文件及子目录

正确的Pipeline代码

fileOperations([
    // 确保目标目录存在,避免复制失败
    fileCreateDirOperation(directoryPath: 'c:\\workspace\\Sample'),
    // 只复制VP1目录下的.dll文件,保留原结构
    fileCopyOperation(
        excludes: '',
        flattenFiles: false,
        includes: 'Test1\\VP1\\**\\*.dll,Test2\\VP1\\**\\*.dll',
        targetLocation: 'c:\\workspace\\Sample'
    ),
    // 复制VP2、VP3、VP4的全部内容,保留原结构
    fileCopyOperation(
        excludes: '',
        flattenFiles: false,
        includes: 'Test1\\VP[2-4]\\**\\*,Test2\\VP[2-4]\\***',
        targetLocation: 'c:\\workspace\\Sample'
    )
])

代码细节说明

  • fileCreateDirOperation:提前创建Sample目录,避免复制操作因目标目录不存在抛出错误
  • 第一个复制操作:通过精确路径Test1\\VP1\\**\\*.dll和Test2\\VP1\\**\\*.dll,仅抓取这两个VP1目录(含子目录)下的.dll文件,flattenFiles: false会保留原有的目录层级,复制后Sample下会出现Test1/VP1和Test2/VP1目录,里面只有符合要求的.dll文件
  • 第二个复制操作:用VP[2-4]通配符匹配VP2、VP3、VP4,**\\*表示抓取这些目录下的所有文件和子目录,同样保留原结构复制到Sample中

这样就能严格满足你的需求:VP1仅复制.dll文件,其他VP目录完整复制所有内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:46:22