我从 Jenkins 管道开始,我想将一些视频文件从任何 jenkins 目录外部复制到我的工作工作区目录。我正在使用 File Operations Plugin为我拥有的其他工作执行一些文件操作。使用该插件,我可以将文件从我的工作区内部复制到外部:
fileOperations([fileCopyOperation(excludes: '', flattenFiles: false, includes: "videos\\*.MTS", targetLocation: "H:\\home\\Videos")])
例如,通过此步骤,我可以将工作区中的 4 个视频文件复制到位于另一个磁盘中的上述目录中。
但我想做相反的事情。我想将视频文件从另一个磁盘中的源目录复制到工作区。我以多种方式尝试过,但似乎“包含”字段不接受绝对路径。例如:
fileOperations([fileCopyOperation(excludes: '', flattenFiles: false, includes: "H:\\home\\Videos\\videos\\*.MTS", targetLocation: ".")])
这在控制台输出中返回以下错误:
File Copy Operation: FATAL: Expecting Ant GLOB pattern, but saw 'H:\home\Videos\videos\*.MTS'. See http://ant.apache.org/manual/Types/fileset.html for syntax
因此,我一直在尝试将一些文件传送到工作区目录以便在那里进行处理。
注意:我正在为我的工作使用声明性管道。
最佳答案
事实上,问题似乎不是从工作区外部复制文件,而是从当前工作目录外部复制文件。我仍然不知道如何做到这一点。
但是,您可以将当前工作目录更改为包含要复制的文件的目录,因此:
dir("H:\\home\\Videos\\videos") {
fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: '*.MTS', targetLocation: "${WORKSPACE}")])
}
此代码允许您复制放置在工作区目录中提到的目录中的 mts 文件。您可以查看有关 dir 步骤的其他帮助 here
关于jenkins - 如何将文件从工作区外的目录复制到 Jenkins 管道中的工作区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47961806/