我应该如何构建包含非源代码工件的Gradle项目?

时间:2012-02-23 18:28:06

标签: gradle

我有一个Gradle项目,其中包含(除了一些Java类之外)一个充满Velocity模板的目录,需要将其部署到远程服务器。

现在我有src/main/velocity中的模板,我有一个名为syncTemplates的同步任务,它将此目录与本地计算机上的另一个位置同步。

我需要修改此版本,以便模板与使用SCP的远程计算机上的目录同步。这样做的“Gradle方式”是什么?我对配置,工件和源集之间的关系仍然有点不清楚,所以我不确定是否有一种优雅的方法来实现这一点,或者我是否应该使用一些带有硬编码的ant任务(项目 - 路径。

1 个答案:

答案 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')
        }
    }
}