我正在使用这个 Gradle SSH 插件。它有一种方法put
可以将文件从我的本地机器移动到会话所连接的机器上。
我的应用程序已完全构建并存在于build/app
其中,我正在尝试将其移动到/opt/nginx/latest/html/
该文件build/app/index.html
将存在于/opt/nginx/latest/html/index.html
其中并且任何子文件夹build/app
也被复制的位置。
我的 build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.hidetake:gradle-ssh-plugin:1.1.4'
}
}
apply plugin: 'org.hidetake.ssh'
remotes {
target {
host = '<my target vm>'
user = 'user'
password = 'pass'
}
}
...
task deploy() << {
ssh.run {
session(remotes.target) {
put from: 'build/app/', into: '/opt/nginx/latest/html/'
}
}
}
正如我上面所说,它将所有文件放入/opt/nginx/latest/html/app
. 如果我更改from
为使用,fileTree(dir: 'build/app')
那么所有文件都会被复制,但我会丢失文件结构,即被build/app/scripts/main.js
复制到/opt/nginx/latest/html/main.js
而不是预期的/opt/nginx/latest/html/scripts/main.js
.
如何在保留文件夹结构的同时将一个目录(不是目录本身)的内容复制到目标目录中?