import org.gradle.api.tasks.Delete plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.ksp) } version = "1.0.1" android { namespace = "com.yuanxuan.tracking_point.library" compileSdk = 36 defaultConfig { minSdk = 23 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles("consumer-rules.pro") } buildTypes { debug { buildConfigField("String", "BASE_URL", "\"http://192.168.2.7:18828\"") } release { buildConfigField("String", "BASE_URL", "\"https://track.23544.com\"") isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } buildFeatures { buildConfig = true } } kotlin { jvmToolchain(11) } ksp { arg("room.schemaLocation", "$projectDir/schemas") } dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.work.ktx) implementation(libs.retrofit) implementation(libs.retrofit.converter.moshi) implementation(libs.okhttp.logging.interceptor) implementation(libs.moshi) ksp(libs.moshi.kotlin.codegen) implementation(libs.androidx.room) implementation(libs.androidx.room.ktx) ksp(libs.androidx.room.ksp) } // Task to clean the 'aar' directory tasks.register("cleanAar") { group = "build" description = "Deletes the root 'aar' directory to ensure a clean build." delete(rootProject.file("aar")) } tasks.register("buildAar") { group = "build" description = "Cleans, builds, and copies release and debug AARs." dependsOn("cleanAar", "assembleDebug", "assembleRelease") doLast { val releaseDestDir = rootProject.file("aar/release") val debugDestDir = rootProject.file("aar/debug") val aarVersion = project.version copy { from(layout.buildDirectory.file("outputs/aar/library-release.aar")) into(releaseDestDir) rename { "trackingPoint-release-$aarVersion.aar" } } copy { from(layout.buildDirectory.file("outputs/aar/library-debug.aar")) into(debugDestDir) rename { "trackingPoint-debug-$aarVersion.aar" } } println( """ AARs have been built and copied: - Release: ${releaseDestDir.absolutePath}/trackingPoint-release-$aarVersion.aar - Debug: ${debugDestDir.absolutePath}/trackingPoint-debug-$aarVersion.aar """.trimIndent() ) } }