plugins { kotlin("android") id("maven-publish") } // Type safety can sometimes suck fun getCredential(type: String): String { return when (type) { // Attempt to find credentials passed by -Pmaven.$type= "user", "password" -> (findProperty("maven.$type") // Fall back to MAVEN_$type from env ?: System.getenv("MAVEN_${type.toUpperCase()}"))?.toString() // Finally fallthrough to an empty string to let task configuration complete // even if actual publishing is going to fail ?: "" else -> throw IllegalArgumentException("Invalid credential type: $type") } } android { defaultConfig { versionCode = 1 versionName = "1.0" consumerProguardFiles("consumer-rules.pro") } } afterEvaluate { publishing { repositories { maven { name = "aps" url = uri("https://maven.msfjarvis.dev/android-password-store/${findProperty("POM_ARTIFACT_ID")}") credentials { username = getCredential("user") password = getCredential("password") } } } publications { create("apsMaven") { from(components.getByName("release")) groupId = findProperty("GROUP").toString() artifactId = findProperty("POM_ARTIFACT_ID").toString() version = findProperty("VERSION_NAME").toString() } } } } dependencies { compileOnly(Dependencies.AndroidX.annotation) implementation(Dependencies.AndroidX.autofill) implementation(Dependencies.Kotlin.Coroutines.android) implementation(Dependencies.Kotlin.Coroutines.core) implementation(Dependencies.ThirdParty.timberkt) }