1

今日私はAndroid Studioでこの「実験的な」画面を発見しました。Gradle:依存関係に「プロモート版」があることはどういう意味ですか?

enter image description here

一部の更新はそれで何を意味するのか "のGradleから...ライブラリのバージョンを推進" と言いますか? 、Gradleのは、いくつかの依存関係の競合を発見し、デフォルトの競合解決戦略を使用していたこと、これが実際に意味

答えて

1

は( https://github.com/JetBrains/android/blob/master/android/src/com/android/tools/idea/gradle/structure/daemon/analysis/PsModuleAnalyzer.java#L59、 が、コメント内のリンクは本当に便利ではない私は、ソースコードをチェックして、これを見つけました)いくつかの依存関係の新しいバージョンを好むことです。

コメントのリンクは、Gradle公式ユーザーガイドにつながります。ここで、依存関係管理について説明します。あなたのための最も興味深い部分は"How dependency resolution works"です。

たとえば、gson-2.6.0のライブラリを依存関係に含めることができますが、その他の依存関係の一部にはgson-2.7が必要であり、推移的な依存関係としてロードされます。これは、依存関係の中に同じライブラリの2つの異なるバージョンがあり、依存関係の競合と呼ばれる状況につながります。なぜなら、Gradleはクラスパスに両方のjarファイルを同時に追加できないからです。したがって、デフォルトの競合解決戦略を使用し、宣言されたバージョンを2.6.0から新しい2.7に昇格させます。

関連する問題