2

私はこのような私のルートbuild.gradleを持っています、なぜそれはGradleのでは動作しませんGroovyで特定の依存関係ライブラリのバージョンを管理および参照するにはどうすればよいですか?

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:${rootProject.ext.buildToolsVersion}' 
    compile 'com.android.support:design:${rootProject.ext.buildToolsVersion}' 
} 

${}作品:

... 
ext{ 
    buildToolsVersion = '23.2.1' 
} 
... 

は、なぜ私はこのように私のAndroidのサポートライブラリのバージョンを管理することはできませんか?

+0

あなたのさまざまな依存関係の更新を管理したいのであれば、ここで私の質問を見ることができます:http://stackoverflow.com/questions/38237130/how-to-detect-when-dependency-library-version-updates -exist-in-build-gradle-in-a @Ben Manesには素晴らしいソリューションがあります。さらに、私の質問のコメントを読んでいれば、彼はあなたの依存関係を構造化する素晴らしい方法を示唆しています。 – Creos

答えて

5

用途:root/build.gradle

あなた module/build.gradle
ext { 
    //Version 
    supportLibrary = '23.2.1' 

    //Support Libraries dependencies 
    supportDependencies = [ 
      design   :   "com.android.support:design:${supportLibrary}", 
      recyclerView  :   "com.android.support:recyclerview-v7:${supportLibrary}", 
      cardView   :   "com.android.support:cardview-v7:${supportLibrary}", 
      appCompat  :   "com.android.support:appcompat-v7:${supportLibrary}", 
      supportAnnotation:   "com.android.support:support-annotations:${supportLibrary}", 
    ] 
} 

dependencies { 
    //...... 
    compile supportDependencies.appCompat 
    compile supportDependencies.design 
} 
+0

それは私のせいです、あなたの解決策は素晴らしいです。 –

+0

私はアレイ内にサポートライブラリをバンドルするという考えが好きです。個々の 'compile'ステートメントを使わずにすべてをコンパイルするためにGradleにループを書くことができる方法はありますか? –

0

私のせい。
'com.android.support:appcompat-v7:${rootProject.ext.buildToolsVersion}'
は、
"com.android.support:appcompat-v7:\${rootProject.ext.buildToolsVersion}"と等しくなります。
"com.android.support:appcompat-v7:${rootProject.ext.buildToolsVersion}"二重引用符となるはずです。

+0

オリジナルの質問を編集することができ、あなた自身の質問に対する修正を含む回答を投稿する必要はありません。 – Levon

関連する問題