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

我应该如何构造包含非源代码工件的Gradle项目?,gradle,Gradle,我有一个Gradle项目,其中包含(除其他外,像一些Java类)一个目录,其中包含了需要部署到远程服务器的模板 现在我在src/main/velocity中有模板,我有一个名为syncTemplates的同步任务,它将此目录与本地计算机上的另一个位置同步 我需要修改此构建,以便使用SCP将模板与远程计算机上的目录同步。做这件事的“格拉德尔方式”是什么?我仍然不清楚配置、工件和源集之间的关系,所以我不确定是否有一种优雅的方法来实现这一点,或者我是否应该使用带有一些硬编码(项目相关)路径的ant任务

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

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


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

这里有一种方法。您可以为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')
        }
    }
}
配置{
scp
} 
依赖项{
scp'org.apache.ant:antjsch:1.8.2'
} 

任务同步模板这里有一种方法。您可以为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')
        }
    }
}
配置{
scp
} 
依赖项{
scp'org.apache.ant:antjsch:1.8.2'
} 
任务同步模板