Gradle - 解压缩最新版本的依赖项

时间:2016-04-28 15:12:26

标签: gradle

我有以下gradle任务解压缩已下载到tmp的依赖项。

task unzip(type: Copy) {
   def zipFile = file('tmp/dist-1.0.1.zip')
   def outDir = file("unpacked/dist")

   from zipTree(zipFile)
   into outDir
}

但是,我希望下载最新版本的依赖项而不是特定版本(即脚本将下载dist-1.0.+)。

有没有一种方法可以解压缩依赖关系,无论下载哪个版本的依赖项?

1 个答案:

答案 0 :(得分:3)

添加新配置,以免污染现有项目配置:

configurations{
    download 
}

在声明的配置中添加依赖项,并根据需要使用版本通配符。只需使用+版本即可获得已声明存储库中的最新版本:

dependencies{
    download `foo:bar:+`
}

解压缩已解析的依赖项:

task unzip(type: Copy) {
    def zipPath = project.configurations.download.find {it.name.startsWith('bar') }
    def zipFile = file(zipPath)
    def outDir = file("unpacked/dist")

    from zipTree(zipFile)
    into outDir
}

注意:在项目依赖项版本中使用通配符通常是一种不好的做法。这使得构建不确定 - 如果将具有重大更改的较新版本的依赖项发布到源代表,则可能会破坏您的构建。