1. 项目 build.gradle 文件中配置引用库版本号
// Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { id 'com.android.application' version '7.2.2' apply false id 'com.android.library' version '7.2.2' apply false id 'org.jetbrains.kotlin.android' version '1.7.10' apply false id 'org.jetbrains.kotlin.kapt' version '1.7.10' apply false } ext { kotlin_version = '1.4.10' compile_sdk = 32 min_sdk = 21 target_sdk = 32 version_code = 1 version_name = "1.0" lib_version_code = 1 lib_version_name = "1.0" navigation_version = '2.5.1' } task clean(type: Delete) { delete rootProject.buildDir }
2. 创建项目统一配置管理库文件 dependencies.gradle
//统一配置一些共用参数 apply plugin:'org.jetbrains.kotlin.android' apply plugin:'org.jetbrains.kotlin.kapt' android { compileSdk compile_sdk defaultConfig { minSdk min_sdk targetSdk target_sdk versionCode version_code versionName version_name testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } // work-runtime-ktx 2.1.0 and above now requires Java 8 kotlinOptions { jvmTarget = '1.8' } dataBinding { enabled = true } } //创建一个dependencies管理的文件,可以在各自module的build.gradle文件里,apply form 该文件的相对路径(包含fileName),如 apply form ../dependencies.gradle dependencies { //region 平台相关的基础库 implementation 'androidx.core:core-ktx:1.8.0' implementation 'androidx.appcompat:appcompat:1.4.2' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //endregion //region jetPack libs ////implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'//已经废弃 implementation 'androidx.lifecycle:lifecycle-livedata:2.5.1' implementation 'androidx.lifecycle:lifecycle-viewmodel:2.5.1' implementation 'androidx.lifecycle:lifecycle-runtime:2.5.1' implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1' kapt "androidx.lifecycle:lifecycle-common-java8:2.5.1" implementation 'androidx.room:room-runtime:2.4.3' // implementation 'androidx.room:room-rxjava2:2.4.3' implementation 'androidx.room:room-common:2.4.3' implementation 'androidx.room:room-ktx:2.4.3' kapt "androidx.room:room-compiler:2.4.3" implementation 'androidx.paging:paging-runtime:3.1.1' implementation 'androidx.paging:paging-runtime-ktx:3.1.1' implementation 'androidx.paging:paging-common:3.1.1' implementation 'androidx.paging:paging-common-ktx:3.1.1' //implementation 'androidx.paging:paging-rxjava2:3.1.1' //implementation 'androidx.paging:paging-rxjava2-ktx:3.1.1' implementation 'androidx.work:work-runtime:2.7.1' implementation 'androidx.work:work-runtime-ktx:2.7.1' //implementation 'androidx.work:work-rxjava2:2.7.1' //注意配置navigation版本号的时候,project下的build.gradle的class path也需要同步navigation的版本号配置 implementation "androidx.navigation:navigation-ui:$navigation_version" implementation "androidx.navigation:navigation-ui-ktx:$navigation_version" implementation "androidx.navigation:navigation-fragment:$navigation_version" implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version" implementation "androidx.navigation:navigation-runtime:$navigation_version" //endregion //region test libs testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' //endregion }
3. Application Module 中 build.gradle 引用统一配置文件
plugins { id 'com.android.application' } apply from: '../dependencies.gradle' android { defaultConfig { applicationId "com.example.app" } buildFeatures { viewBinding true } } dependencies { }
4. Library Module 中 build.gradle 引用统一配置管理文件
plugins { id 'com.android.library' } apply from: '../dependencies.gradle' android { //from dependencies.gradle } dependencies { //from dependencies.gradle }