可以使用gradle复制任务从URL复制文件吗?

时间:2016-01-28 00:06:33

标签: gradle android-gradle

是否可以使用gradle任务从http位置复制文件

我试过这样的事情

task copyDatabaseFile(type: Copy) {
    from 'http://somelocation/somedatabasefile.cdl';
    into 'target location'
}

但结果是

Cannot convert URL 'http://server.cequint.com/cdldb/uscc/cityid.cdl' to a file.

我找不到任何做类似事情的gradle例子

2 个答案:

答案 0 :(得分:1)

Gradle开箱即用,不支持此功能。但是VFS插件可以帮到你:https://plugins.gradle.org/plugin/org.ysb33r.vfs

答案 1 :(得分:0)

您可以使用groovy从网址下载并保存文件:

task downloadFile() << {
    def address='url/to/download.ext'
    def target='/path/tosave'

  new File("${address.tokenize('/')[-1]}").withOutputStream { out ->
      new URL(address).withInputStream { from ->  out << from; }
  }
}

如果您需要在运行构建任务之前始终(仅)运行此任务,则可以添加到build.gradle:

build.dependsOn downloadFile