2016-04-28 42 views
2

我有下面的gradle任務,解壓縮已下載到tmp的依賴關係。Gradle - 解壓縮最新版本的依賴關係

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.+)的。

有沒有一種方法可以解壓縮依賴項,不管哪個版本的依賴項已經被下載?

+0

要在運行時找出最新版本的依賴關係,最好使用gradle的依賴關係解析機制。 – RaGe

回答

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 
} 

注:它通常是一種不好的做法在項目依賴使用通配符版本。這使得構建非確定性 - 如果具有重大更改的更新版本的依賴項發佈到源回購,它可能會破壞構建。