Gradleのモジュールが複数ある場合に管理しないとbuild.gradleを編集する時に警告が出てめんどうですよね。(基本的に一番大きいバージョンになるとは思いますが)
本当にどれでもいいのですが、
どれかを選ぶとなると悩みがちなので、簡単にどういうパターンが有るか一応出しておきます。
gradle.propertiesを使う
google/iosched, DroidKaigi/conference-app-2017で使われているみたいです
https://github.com/DroidKaigi/conference-app-2017/search?utf8=%E2%9C%93&q=support_lib_version&type=
簡易的に対応するのであれば一番シンプルな気がします。
どこに設定あるんだっけ?ってなるかもっていうのはありますが、検索でなんとかなるとは思います。
support_lib_version=25.1.1
dependencies {
// Support Library
compile "com.android.support:support-v4:${support_lib_version}"
}
ルートのbuild.gradleの中で、extを使う
googlesamples/android-architectureやJakeWharton/u2020で使われているみたいです。
https://github.com/googlesamples/android-architecture/blob/todo-mvp-rxjava/todoapp/app/build.gradle
無難な感じです。
ext {
// Sdk and tools
minSdkVersion = 10
targetSdkVersion = 24
compileSdkVersion = 24
buildToolsVersion = '24.0.2'
// App dependencies
supportLibraryVersion = '24.2.0'
dependencies {
// App's dependencies, including test
compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
dependencies.gradleなど別ファイルに分けて管理
twitter/twitter-kit-androidで使われているみたいです。
モジュールのbuild.gradleは見やすいですがSupport Libraryを一個追加する時に2ファイル編集しないといけないのはちょっとマイナスかもです
ext {
compileSdkVersion = 23
buildToolsVersion = '23.0.3'
targetSdkVersion = 22
minSdkVersion = [
twitter : 14
]
sourceCompatibilityVersion = JavaVersion.VERSION_1_7
targetCompatibilityVersion = JavaVersion.VERSION_1_7
enableTestCodeCoverage = true
buildNumber = 'dev'
dependency = [
// Gradle plugins
spoonGradlePlugin : 'com.stanfy.spoon:spoon-gradle-plugin:1.0.4',
androidGradlePlugin : 'com.android.tools.build:gradle:2.1.2',
apply from: rootProject.file('dependencies.gradle')
dependencies {
...
compile dependency.fabric
べた書き
モジュールが1つしかない場合はこれで十分だと思います
kickstarterやGitHubのクライアントなど
https://github.com/kickstarter/android-oss/blob/master/app/build.gradle#L135
https://github.com/pockethub/PocketHub/blob/master/app/build.gradle#L112
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:cardview-v7:25.1.0'
おわり
どれが好みだったでしょうか?
本当にどれでもいいのですが、複数のモジュールを使って開発をする場合は、どれかでバージョンを統一して管理しておきたいですね
他にいい方法を知っていたらぜひ教えてください!