【问题标题】:Groovy: No such file exception but file is there ? Copying files on crossplateformsGroovy:没有这样的文件异常,但文件在那里?跨平台复制文件
【发布时间】:2019-03-14 20:08:36
【问题描述】:

我在尝试复制文件时遇到了 Groovy\Jenkins 问题

我使用的代码如下:

public void copy(String sources, String destination) {

    Path source = Paths.get( join(this.script.WORKSPACE, sources) );
    Path target = Paths.get( join(this.script.WORKSPACE, destination) );

    Files.copy(source, target)

}

this.script.WORKSPACE 是 Jenkins 工作空间,如果这个工作空间是 C:\Jenkins\Workspace\MyBranch 并且来源是 binaries\mybinary.dll 那么 join 函数将返回:

C:\Jenkins\Workspace\MyBranch\mybinary.dll

在执行时我收到以下错误:

java.nio.file.NoSuchFileException: Y:\Jenkins\workspace\MyBranch\mybinary.dll

但是文件在那里,在代理上。

问题是我使用 xcopy 是因为我只需要在 windows 目标上进行复制(它可以正常工作,我隔离了对复制功能的更改,现在 windows 复制失败了)。

但现在我还要在 redhat 平台上复制。

所以我正在寻找一个跨平台的解决方案

谢谢!

【问题讨论】:

    标签: linux windows jenkins groovy copy


    【解决方案1】:

    所以我发现这是与 Jenkins 相关的问题。实际上管道是在master上执行的,而不是在agent上执行的,所以文件是在master上查找的,它不存在。

    我将不得不使用 sh 脚本或 jenkins stash 函数,但我似乎无法在这里使用跨平台代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      相关资源
      最近更新 更多