94 lines
3.0 KiB
Plaintext
94 lines
3.0 KiB
Plaintext
import java.util.*
|
|
|
|
plugins {
|
|
alias(libs.plugins.dokka)
|
|
alias(libs.plugins.kotlin.jvm)
|
|
alias(libs.plugins.maven.publish)
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
implementation(libs.mongo.bson)
|
|
}
|
|
|
|
kotlin {
|
|
jvmToolchain(11)
|
|
}
|
|
|
|
val javadocJar by tasks.register<Jar>("dokkaJavadocJar") {
|
|
dependsOn(tasks.dokkaJavadoc)
|
|
from(tasks.dokkaJavadoc.flatMap { it.outputDirectory })
|
|
archiveClassifier.set("javadoc")
|
|
}
|
|
|
|
val sourcesJar by tasks.register<Jar>("sourcesJar") {
|
|
from(sourceSets.main.get().allSource)
|
|
archiveClassifier.set("sources")
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
create<MavenPublication>("maven") {
|
|
groupId = rootProject.group.toString()
|
|
artifactId = "bson-datetime"
|
|
version = rootProject.version.toString()
|
|
from(components["java"])
|
|
artifact(javadocJar)
|
|
artifact(sourcesJar)
|
|
}
|
|
}
|
|
repositories {
|
|
val secretFile = rootProject.file("secret.properties")
|
|
if (secretFile.exists()) {
|
|
val secret = Properties()
|
|
secretFile.inputStream().also { secret.load(it) }
|
|
|
|
val mavenUrl = secret["neuon.maven.url"] as? String
|
|
val mavenUsername = secret["neuon.maven.username"] as? String
|
|
val mavenPassword = secret["neuon.maven.password"] as? String
|
|
|
|
if (mavenUrl != null && mavenUsername != null && mavenPassword != null) {
|
|
maven {
|
|
requireNotNull(mavenUrl) {
|
|
"neuon.maven.url is missing from secret.properties"
|
|
}
|
|
requireNotNull(mavenUsername) {
|
|
"neuon.maven.username is missing from secret.properties"
|
|
}
|
|
requireNotNull(mavenPassword) {
|
|
"neuon.maven.password is missing from secret.properties"
|
|
}
|
|
name = "neuon"
|
|
url = uri(mavenUrl)
|
|
|
|
credentials(PasswordCredentials::class) {
|
|
username = mavenUsername
|
|
password = mavenPassword
|
|
}
|
|
}
|
|
} else {
|
|
val list = listOfNotNull(
|
|
"neuon.maven.url".takeIf { mavenUrl == null },
|
|
"neuon.maven.username".takeIf { mavenUsername == null },
|
|
"neuon.maven.password".takeIf { mavenPassword == null },
|
|
)
|
|
val message = buildString {
|
|
append("Missing Maven publication in secret.properties: ")
|
|
append(list.joinToString())
|
|
append(". Ignore this if you don't plan on publishing this library")
|
|
}
|
|
|
|
logger.error(message)
|
|
}
|
|
} else {
|
|
logger.error(
|
|
buildString {
|
|
append("Missing secret.properties. Ignore this if you don't plan on publishing this library")
|
|
},
|
|
)
|
|
}
|
|
}
|
|
} |