如何在保留符号链接的Gradle中复制目录?

如何在保留符号链接的Gradle中复制目录?,gradle,build,symlink,Gradle,Build,Symlink,以下gradle任务复制目录,但解析所有符号链接。这是不能接受的。我想保留 task test { doLast { copy { from 'source' to 'destination' } } } 对此可以做些什么?对于该错误有一个解决方案 现在,您可以检测符号链接,也可以手动创建它 import java.nio.file.FileSystems import java.nio.file.

以下gradle任务复制目录,但解析所有符号链接。这是不能接受的。我想保留

task test {
    doLast {
        copy {
            from 'source'
            to 'destination'
        }
    }
}
对此可以做些什么?

对于该错误有一个解决方案

现在,您可以检测符号链接,也可以手动创建它

import java.nio.file.FileSystems
import java.nio.file.Files
import java.nio.file.Path

copy {
    from $source
    into $destination
    eachFile { details ->
        Path pathFile = FileSystems.getDefault().getPath(details.file.path)
        if(Files.isSymbolicLink(pathFile)) {
            details.exclude()
            commandLine 'ln', '-s', Files.readSymbolicLink(pathFile), "$destination/${details.relativePath}
        }
    }
}

这是Gradle的已知限制,请参见: