Gradleでファイルアップロード(FTP)をしてみた。

FTPサーバーへのファイルアップロードを自動化したいなぁと思って調べていたら、stackoverflow.com 紹介されていたのでやってみました。

準備

以下の build.gradle を準備します。

apply plugin: 'java'

configurations {
    ftpAntTask
}

repositories {
  mavenLocal()
  mavenCentral()
}

dependencies {
  ftpAntTask 'org.apache.ant:ant-commons-net:1.10.5'
}

task upload << {

    ant.taskdef( name: 'ftp'
               , classname: 'org.apache.tools.ant.taskdefs.optional.net.FTP'
               , classpath: configurations.ftpAntTask.asPath )

    ant.ftp ( server: "(アップロード先ホスト名 or IP)"
            , userid: "(ユーザーID)"
            , password: "(パスワード)"
            , remoteDir: "(アップロード先のディレクトリ)") {
                 fileset(dir: "(アップロード元のディレクトリ)")
            }
}

実行

コマンドプロンプトで build.gradle の配置してあるディレクトリから以下のコマンドを実行

> gradle upload

感想

思っていたより簡単にFTPアップロードできちゃいました。ちなみに、オリジナルのサイトで 紹介されていた書き方をちょっと変えていますが、品質に問題ありませんでした。 filesetの部分を工夫すれば、ファイルを選択してアップロードも可能なので Windows の ftpコマンドより便利そうですね。