Luk*_*don 3 windows symlink cygwin gradle
我需要向 gradle 构建脚本添加一个将创建符号链接的命令。我知道构建者已经安装了 cygwin。问题出在导出命令上。这是我到目前为止得到的
if(OS == 'win32') {
exec { commandLine "C:\\cygwin\\bin\\mintty.exe", "--hold always", "/bin/bash", "-l", "-e", "export", "CYGWIN=winsymlinks", "&&", "-e", "ln", "-s", link, file}
//exec { commandLine "cmd", "/c", "mklink", link, file}
//exec { commandLine "export", "CYGWIN=winsymlinks" }
//exec { commandLine "C:\\cygwin\\bin\\ln.exe" , "-s", link, file}
}
else {
exec { commandLine "ln", "-s", link, file}
}
Run Code Online (Sandbox Code Playgroud)
有标准的方法吗?
Ant 构建器为每个任务提供一个。似乎是一个解决方案,但正如评论中指出的那样,它并不是真正的跨平台:
task createLink << {
ant.symlink(resource: "file", link: "link")
}
Run Code Online (Sandbox Code Playgroud)
相反,您可以在 Java 中调用 NIO API,但您需要 1.7。看一下 createSymbolicLink
Gradle 不提供用于创建符号链接的公共 API。如果您的构建在 JDK 7 或更高版本下运行,您可以尝试 JDK 的符号链接 API。exec否则,只要你能找出正确的命令,应该也可以解决这个问题。