2012-02-23 13 views
1

私は、リモートサーバーに展開する必要があるVelocityテンプレートでいっぱいのディレクトリ(いくつかのJavaクラスのようなもの)を含むGradleプロジェクトを持っています。ソースコード以外のアーティファクトを含むGradleプロジェクトをどのように構築する必要がありますか?

今私はsrc/main/velocityのテンプレートを持っており、このディレクトリをローカルマシンの別の場所と同期するsyncTemplatesという名前の同期タスクがあります。

テンプレートがSCPを使用してリモートマシン上のディレクトリと同期するように、このビルドを変更する必要があります。これを行うための「邪魔な道」は何ですか?私は設定、成果物、ソースセット間の関係についてまだ少しはっきりしていないので、これを実現させるためのエレガントな方法があるのか​​、ハード・コード化された(プロジェクト固有の)相対パス)。

答えて

1

これはこれを行う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') 
     } 
    } 
} 
関連する問題