web-dev-qa-db-ja.com

Gradle依存関係を最新バージョンに更新する方法

Gradleに依存関係を最新の利用可能なバージョンに更新する簡単な方法はありますか?

ビルドの再現性のために、build.gradleファイルでは、すべての依存関係が次のようなバージョン番号で定義されています。

dependencies {
    compile 'namespace:package1:version'
    compile 'namespace:package2:version'
    compile 'namespace:package3:version'
}

定期的にすべてのパッケージを最新バージョンに更新します。通常、これはリリース後の新しいスプリントで最初に行うことです。

パッケージごとに手動でこれを行うのは非常に苦痛です。理想的には、build.gradleファイルを更新するコマンドが必要ですが、少なくとも、更新が必要なパッケージと最新バージョン番号を出力するコマンドが必要です。

Ruby landでは、Bundler Updateを実行します。

23
Jared Kells

これが私が思い付くことができたすべてです。これを手動で行う方法があまりない場合は、別の答えを喜んで受け入れます。

  1. Android studioでは、すべての依存関係バージョンをプラスの例に置き換えます:compile 'namespace:package1:+'

  2. プロジェクトを同期またはビルドすると、すべての依存関係が最新バージョンに解決されます。

  3. Android Studioはbuild.gradleの各依存関係行にカーソルを置き、alt + enterを押します。メニューがポップアップ表示され、特定の場所に置き換えるバージョン

20
Jared Kells

ライブラリにはコードを壊す可能性のある変更が含まれる可能性があるため、これはあまり良い方法ではありません。

共通の「許容」構文

compile 'namespace:package:major_version.minor_version.revision'

のようになります

compile 'namespace:package:1.0.+'

revisionを考慮すると、ライブラリの作成者はバグの修正と改善の更新として使用します。

注:私はそれをやっただけで、あなたはできる

compile 'namespace:package:+'

編集:
A 概念実証 私の 最新のコメント テストすることもできます。
これは5分で作成されたので、完璧でも柔軟でもないことを期待しないでください。

7
Gorcyn

build.gradleに追加:

plugins {
  id 'com.github.ben-manes.versions' version '0.17.0'
}

その後、gradle dependencyUpdatesを実行して、新しいバージョンのレポートを取得できます。有名なMavenプラグインとは異なり、build.gradleを自動的に更新する方法はまだないようです。

その他のドキュメント: https://github.com/ben-manes/gradle-versions-plugin

4

私も苦しんでいます。また、依存関係を手動で確認する最良の方法は、プロジェクト構造を調べて依存関係名を検索し、新しいバージョンがあるかどうかを確認することです。

このクエリがMavenリポジトリに存在する依存関係のみをチェックするという問題。少なくとも、Googleにはすでに行きます。

enter image description here

enter image description here

enter image description here

注:新しいバージョンに依存関係を追加することを選択した場合、これによりApp Gradleに重複が追加されるため、必ず古い依存関係行を削除してください。

別の可能なクイックフィックスは、コマンドラインを使用することです。

./gradlew app: dependencies

これにより、以下のような出力が生成されます。アスタリスクは、新しい既存のバージョンを指していることに注意してください。

enter image description here