web-dev-qa-db-ja.com

Gradle-依存関係の最新リリースバージョンを取得する

次のことをGradleに伝える最も簡単な方法は何ですか:

「junit」依存関係を取得し、その最新の「リリース」バージョンを取得します。

MavenおよびIvyリポジトリーの管理は、私にとって新しいものです。次の手順を試してみましたが、Could not resolve dependency ...エラーが発生しました。

  • リポジトリをmavenCentral()のみに設定してcompile "junit:junit:latest.release"を記述します(ただし、「junit:junit:4.10」と言えば動作します)。

  • 次の方法でリポジトリを設定してcompile "junit:junit:latest.release"を記述します。

    ivy {
        // I also tried 'http://maven.org' and other possible variants.           
        url "http://repo1.maven.org" 
        layout "maven"
    }
    
  • Spring Source Ivyリポジトリの使用を試みました:

    ivy {
        artifactPattern "http://repository.springsource.com/ivy/libraries/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
        ivyPattern "http://repository.springsource.com/ivy/libraries/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
    }
    

たぶん私は何かを誤解しています。依存関係のlatestバージョンを取得するのはなぜ難しいタスクなのでしょうか?

82
Yippie-Ki-Yay

現在、GradleはMavenのRELEASE(ほとんど使用されておらず廃止されています)をサポートしていませんが、Ivyのlatest.releaseをサポートしています。ただし、一般的な推奨事項は、正確なバージョンに対してビルドすることです。そうしないと、ビルドが宝くじになる可能性があります。

42

最新のリリースを入手すると非常に役立つ場合があります。たとえば、頻繁に独自の依存関係をリリースする場合です。

次のような最新バージョンを入手できます

compile "junit:junit:+"

または、少なくとも次のようなメジャーバージョンを指定してください。

compile "junit:junit:4.+"
235
jmruc

Gradle-Versions-Pluginをご覧ください。それはあなたが望むことを正確に行います: https://github.com/ben-manes/gradle-versions-plugin

インストールについては、githubページを参照してください。基本的に、次の2行をbuild.gradle-プロジェクトファイルに追加する必要があります。

apply plugin: 'com.github.ben-manes.versions'

buildscript {
    [...]
    dependencies {
        classpath 'com.github.ben-manes:gradle-versions-plugin:0.8'
        [...]
    }
}
[...]

次に、プロジェクトディレクトリのターミナルで次のコマンドを実行して、プラグインを使用できます。

./gradlew dependencyUpdates -Drevision=release

そして、どの依存関係が古くなっているかが表示されます!

24
Ben Marten

最新のGradleユーザーガイドでは、プラスサインインバージョンについて言及および説明しています。

7.2。依存関係の宣言

dependencies {
    compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

...ビルドスクリプトは、プロジェクトのテストをコンパイルするには4.0以上のjunitが必要であることも示しています。

から 23.7。依存関係の解決方法

依存関係が動的バージョン(1. +など)として宣言されている場合、Gradleはこれをリポジトリ内の最新の利用可能な静的バージョン(1.2など)に解決します。 Mavenリポジトリの場合、これはmaven-metadata.xmlファイルを使用して行われますが、Ivyリポジトリの場合、これはディレクトリリストによって行われます。

7
RunninglVlan

In Android St​​udio:

バージョンに+を使用しており、実際に使用されているバージョンを知りたい場合Projectを選択しますサイドバー、[External Libraries]の下に、使用中の実際のバージョン番号が表示されます。

3
lenooh