我的 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/