2012-02-23 58 views
1

我有一个Gradle项目,其中包含(其中包括一些Java类)一个完整的Velocity模板需要部署到远程服务器的目录。我该如何构建一个包含非源代码构件的Gradle项目?

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

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

回答

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: '[email protected]:someDir', password: 'password') { 
     fileset(dir: 'src/main/velocity') { 
      include(name: '**/*.vm') 
     } 
    } 
} 
相关问题