2017-11-11 7 views
4

私は以下のように、私はコードを発見した新しいアーキテクチャコンポーネント、Googleのサンプルにして探していた:私は、彼らがdeps.*で始まるすべての依存関係を書かれている理由を理解することはできませんよ"implementation deps.support.app_compat"の "deps"とは何ですか?

dependencies { 
    // Support libraries 
    implementation deps.support.app_compat 
    implementation deps.support.v4 
    implementation deps.support.design 
    implementation deps.support.cardview 

    // Architecture components 
    implementation deps.lifecycle.runtime 
    implementation deps.lifecycle.extensions 
    annotationProcessor deps.lifecycle.compiler 
    implementation deps.room.runtime 
    annotationProcessor deps.room.compiler 

    // Android Testing Support Library's runner and rules 
    androidTestImplementation deps.atsl.runner 
    androidTestImplementation deps.atsl.rules 
    androidTestImplementation deps.room.testing 
    androidTestImplementation deps.arch_core.testing 

    // Espresso UI Testing 
    androidTestImplementation deps.espresso.core 
    androidTestImplementation deps.espresso.contrib 
    androidTestImplementation deps.espresso.intents 

    // Resolve conflicts between main and test APK: 
    androidTestImplementation deps.support.annotations 
    androidTestImplementation deps.support.v4 
    androidTestImplementation deps.support.app_compat 
    androidTestImplementation deps.support.design 
} 

。誰も私がコードを理解するのを手伝ってもらえますか?前もって感謝します。 レポにはlinkがあります。

+0

ルートディレクトリの 'versions.gradle'ファイルで 'deps'と宣言されています – Jovin

答えて

5

depsは、projectインスタンスに設定され、versions.gradleファイルで定義されたMapクラスのインスタンスです。このversions.gradleファイルは、ルートbuild.gradleスクリプトのappliedになります。したがって、サブプロジェクトではdepsを使用できます。

0

@Opalの提案に追加します。

DEPS level.YouがDagger2ためhere

セイでそれを見つけることができるプロジェクトで定義されたプレースホルダモジュールレベルより一の段階であるversions.gradleファイルに次のように、DEPSが定義されます。

*def dagger = [:] 
dagger.runtime = "com.google.dagger:dagger:$versions.dagger" 
dagger.android = "com.google.dagger:dagger-android:$versions.dagger" 
..... 

deps.dagger = dagger* 

Image if code not well formatted

それはプロジェクトのすべてのモジュールに適用されたものと同じバージョンを持つのに役立ちますこの方法です。 特定の依存関係を必要とするモジュールだけが、それらのbuild.gradle定義でそれを宣言することができます。

関連する問題