
ファイルのダウンロード
ダウンロードプラグインを使うと簡単。
plugins {
id 'java'
id "de.undercouch.download" version "1.2"
}
repositories {
mavenCentral()
}
task wrapper(type: Wrapper) {
gradleVersion = '2.2.1'
}
task downloadAndUnzip {
outputs.upToDateWhen { file('data').exists() }
doLast {
def downloadedFile = new File(buildDir, 'downloaded/some.zip')
download {
src 'http://www.someurl.com/some.zip'
dest downloadedFile
}
copy {
from zipTree(downloadedFile)
into new File(projectDir, 'data')
}
}
}
- ファイルダウンロードプラグインを指定
- download タスクで指定したURLからファイルダウンロード
- ダウンロードしたファイルはプロジェクトディレクトリ直下の
destの中に展開 - upToDate 判定を
destディレクトリの存在確認で実施(2回目からはスキップされる)
プラグインを使わないと
以下のように書ける。
def f = new File('data') if (!f.exists()) { new URL('http://www.someurl.com/some.zip').withInputStream{ i -> f.withOutputStream{ it << i }} }
けど、プロキシ経由できなかったり、リダイレクトに対応できない模様。
そんな場合は Ant の助けを借りて以下。
task downloadSomething(type: MyDownload) {
sourceUrl = 'http://www.someurl.com/some.zip'
target = file('data')
}
someOtherTask.dependsOn downloadSomething
class MyDownload extends DefaultTask {
@Input
String sourceUrl
@OutputFile
File target
@TaskAction
void download() {
ant.get(src: sourceUrl, dest: target)
}
}

Gradle Effective Implementation Guide
- 作者: Hubert Klein Ikkink
- 出版社/メーカー: Packt Publishing
- 発売日: 2012/10/25
- メディア: Kindle版
- この商品を含むブログ (1件) を見る

Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築
- 作者: 綿引琢磨,須江信洋,林政利,今井勝信
- 出版社/メーカー: 翔泳社
- 発売日: 2014/11/05
- メディア: 大型本
- この商品を含むブログ (2件) を見る