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
//<editor-folder desc="jetPack libs"> </editor-folder>
//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
}