96 lines
3.2 KiB
Text
96 lines
3.2 KiB
Text
plugins {
|
|
id("com.android.library")
|
|
id("maven-publish")
|
|
kotlin("android")
|
|
`aps-plugin`
|
|
}
|
|
|
|
// 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 = 2
|
|
versionName = "2.0"
|
|
consumerProguardFiles("consumer-rules.pro")
|
|
}
|
|
|
|
kotlin {
|
|
explicitApi()
|
|
}
|
|
|
|
kotlinOptions {
|
|
freeCompilerArgs = freeCompilerArgs + listOf(
|
|
"-Xexplicit-api=strict"
|
|
)
|
|
}
|
|
}
|
|
|
|
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<MavenPublication>("apsMaven") {
|
|
fun getKey(propertyName: String): String {
|
|
return findProperty(propertyName)?.toString() ?: error("Failed to find property for $propertyName")
|
|
}
|
|
|
|
from(components.getByName("release"))
|
|
groupId = getKey("GROUP")
|
|
artifactId = getKey("POM_ARTIFACT_ID")
|
|
version = getKey("VERSION_NAME")
|
|
pom {
|
|
name.set(getKey("POM_ARTIFACT_ID"))
|
|
description.set(getKey("POM_ARTIFACT_DESCRIPTION"))
|
|
url.set(getKey("POM_URL"))
|
|
licenses {
|
|
license {
|
|
name.set(getKey("POM_LICENSE_NAME"))
|
|
url.set(getKey("POM_LICENSE_URL"))
|
|
}
|
|
}
|
|
developers {
|
|
developer {
|
|
id.set(getKey("POM_DEVELOPER_ID"))
|
|
name.set(getKey("POM_DEVELOPER_NAME"))
|
|
email.set(getKey("POM_DEVELOPER_EMAIL"))
|
|
}
|
|
}
|
|
scm {
|
|
connection.set(getKey("POM_SCM_CONNECTION"))
|
|
developerConnection.set(getKey("POM_SCM_DEV_CONNECTION"))
|
|
url.set(getKey("POM_SCM_URL"))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compileOnly(Dependencies.AndroidX.annotation)
|
|
implementation(Dependencies.AndroidX.autofill)
|
|
implementation(Dependencies.Kotlin.Coroutines.android)
|
|
implementation(Dependencies.Kotlin.Coroutines.core)
|
|
implementation(Dependencies.ThirdParty.timberkt)
|
|
}
|