java - 尽管成功复制文件,但 SMB-FS 上的 Gradle 复制作业失败

标签 java gradle copy smb cifs

我的 gradle 构建中有一个复制作业,它将从本地安装的 SMB/CIFS 系统中获取文件。它确实正确复制了第一个文件,但退出时出现 Could not copy file 异常,并在获取文件模式时提示 native 问题。文件和目录具有当前用户的 RWX。将内容复制到另一个本地文件夹时,作业按预期工作。

异常(exception)情况是:

Caused by: org.gradle.internal.nativeplatform.filesystem.FileException: Could not get file mode for '/mountpoint/file.zip'.
at org.gradle.internal.nativeplatform.filesystem.GenericFileSystem.getUnixMode(GenericFileSystem.java:58)
at org.gradle.api.internal.file.DefaultFileTreeElement.getMode(DefaultFileTreeElement.java:67)
at org.gradle.api.internal.file.AbstractFileTreeElement.copyTo(AbstractFileTreeElement.java:76)
... 78 more
Caused by: net.rubygrapefruit.platform.NativeException: Could not get posix file details of /mountpoint/file.zip: could not stat file (errno 75)
at net.rubygrapefruit.platform.internal.DefaultPosixFiles.stat(DefaultPosixFiles.java:32)
at net.rubygrapefruit.platform.internal.DefaultPosixFiles.getMode(DefaultPosixFiles.java:46)
at org.gradle.internal.nativeplatform.filesystem.NativePlatformBackedStat.getUnixMode(NativePlatformBackedStat.java:32)
at org.gradle.internal.nativeplatform.filesystem.GenericFileSystem.getUnixMode(GenericFileSystem.java:56)
... 80 more

问题是:是否有解决方法?其他方式?在不更改构建脚本(太多)的情况下我可以对系统做些什么? (解决方案不应该是先创建本地副本...)

该系统是一台装有 Java 1.7.65 和 Gradle 2.0 版本的 Debian 机器

最佳答案

这个问题似乎是“众所周知的”——虽然我一开始没有发现:there is a bug report for Gradle already .我希望这会很快得到解决。

只有像这样使用 good'ol ANT 才能实现适用于我的情况的解决方案:

    ant.copy(todir:"destination/directory") {
        fileset(dir: "source/directory")
        {
            include(name: "filename.zip")
        }
    }

关于java - 尽管成功复制文件,但 SMB-FS 上的 Gradle 复制作业失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25242268/

相关文章:

java - 我怎样才能写出文本文档中的所有页面

android - 如何包含 Sonar 的 Android 库和类?

c++ - 将一维 vector 转换为二维 vector

java - java中如何使用Socket处理多个连接

java - Thymeleaf 无法检测到 spring-boot 项目中的模板

java - 当用户在特定区域时如何发送 toast ?

android-studio - 如何强制停止在 Android Studio 中运行的 Gradle Build

android - GCM适用于build.gradle 1.4.0,但不适用于1.3.0

c++ - 如何使用 Boost Filesystem 复制目录

java - 复制数组 Java