2016-04-28 18 views
2

私はtmpにダウンロードされた依存関係を解凍する以下のgradleタスクを持っています。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 
} 

注:プロジェクトの依存関係でワイルドカードを使用することが一般的に悪い習慣ですが、単にバージョンの+を使用すると、あなたに宣言したリポジトリで利用可能な最新バージョンを取得しますバージョン。これにより、ビルドが非決定的になります。変更を破棄する依存関係の新しいバージョンがソースリポジトリに公開されると、ビルドが中断される可能性があります。

関連する問題