2012-02-23 92 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') 
     } 
    } 
} 
相關問題