我有一个Gradle项目,其中包含(除了一些Java类之外)一个充满Velocity模板的目录,需要将其部署到远程服务器。
现在我有src/main/velocity
中的模板,我有一个名为syncTemplates
的同步任务,它将此目录与本地计算机上的另一个位置同步。
我需要修改此版本,以便模板与使用SCP的远程计算机上的目录同步。这样做的“Gradle方式”是什么?我对配置,工件和源集之间的关系仍然有点不清楚,所以我不确定是否有一种优雅的方法来实现这一点,或者我是否应该使用一些带有硬编码的ant任务(项目 - 路径。
答案 0 :(得分:1)
这是一种做法。您可以为SCP依赖项创建配置,然后使用Ant任务来传输文件。
configurations {
scp
}
dependencies {
scp 'org.apache.ant:ant-jsch:1.8.2'
}
task syncTemplates << {
ant.taskdef(name: 'scp', classname: 'org.apache.tools.ant.taskdefs.optional.ssh.Scp', classpath: configurations.scp.asPath)
ant.scp(remoteToDir: 'user@host:someDir', password: 'password') {
fileset(dir: 'src/main/velocity') {
include(name: '**/*.vm')
}
}
}