2018-09-24 21:13:47 +00:00
|
|
|
import com.jfrog.bintray.gradle.BintrayExtension
|
|
|
|
import com.jfrog.bintray.gradle.tasks.BintrayUploadTask
|
|
|
|
import groovy.lang.Closure
|
|
|
|
import org.gradle.api.internal.HasConvention
|
|
|
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|
|
|
import org.jetbrains.dokka.gradle.DokkaTask
|
|
|
|
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
|
|
|
|
|
|
|
description = "A Result monad for modelling success or failure operations."
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
`maven-publish`
|
2018-09-24 21:34:12 +00:00
|
|
|
kotlin("jvm") version ("1.2.71")
|
2018-09-24 21:13:47 +00:00
|
|
|
id("org.jetbrains.dokka") version ("0.9.17")
|
|
|
|
id("com.github.ben-manes.versions") version ("0.20.0")
|
|
|
|
id("com.jfrog.bintray") version ("1.8.4")
|
|
|
|
id("net.researchgate.release") version ("2.7.0")
|
|
|
|
}
|
|
|
|
|
|
|
|
allprojects {
|
|
|
|
repositories {
|
|
|
|
mavenCentral()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2018-09-24 21:31:53 +00:00
|
|
|
implementation(kotlin("stdlib-jdk8"))
|
2018-09-24 21:13:47 +00:00
|
|
|
|
|
|
|
testImplementation("junit:junit:4.12")
|
2018-09-24 21:31:53 +00:00
|
|
|
testImplementation(kotlin("test-common"))
|
|
|
|
testImplementation(kotlin("test-annotations-common"))
|
|
|
|
testImplementation(kotlin("test-junit"))
|
|
|
|
testImplementation(kotlin("test"))
|
2018-09-24 21:13:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
val SourceSet.kotlin: SourceDirectorySet
|
|
|
|
get() = withConvention(KotlinSourceSet::class) { kotlin }
|
|
|
|
|
|
|
|
val compileKotlin by tasks.existing(KotlinCompile::class)
|
|
|
|
val compileTestKotlin by tasks.existing(KotlinCompile::class)
|
|
|
|
val dokka by tasks.existing(DokkaTask::class)
|
|
|
|
|
|
|
|
compileKotlin {
|
|
|
|
kotlinOptions.jvmTarget = "1.8"
|
|
|
|
}
|
|
|
|
|
|
|
|
compileTestKotlin {
|
|
|
|
kotlinOptions.jvmTarget = "1.8"
|
|
|
|
}
|
|
|
|
|
|
|
|
dokka {
|
|
|
|
kotlinTasks(closureOf<Any?> { emptyList() })
|
|
|
|
sourceDirs = sourceSets["main"].kotlin.srcDirs
|
|
|
|
outputFormat = "javadoc"
|
|
|
|
outputDirectory = "$buildDir/docs/javadoc"
|
|
|
|
}
|
|
|
|
|
|
|
|
val javadocJar by tasks.registering(Jar::class) {
|
|
|
|
group = LifecycleBasePlugin.BUILD_GROUP
|
|
|
|
description = "Assembles a jar archive containing the Javadoc API documentation."
|
|
|
|
classifier = "javadoc"
|
2018-09-24 21:32:47 +00:00
|
|
|
dependsOn(dokka)
|
2018-09-24 21:13:47 +00:00
|
|
|
from(dokka.get().outputDirectory)
|
|
|
|
}
|
|
|
|
|
|
|
|
val sourcesJar by tasks.registering(Jar::class) {
|
|
|
|
group = LifecycleBasePlugin.BUILD_GROUP
|
|
|
|
description = "Assembles a jar archive containing the main classes with sources."
|
|
|
|
classifier = "sources"
|
|
|
|
from(sourceSets["main"].allSource)
|
|
|
|
}
|
|
|
|
|
|
|
|
publishing {
|
|
|
|
publications {
|
|
|
|
register("mavenJava", MavenPublication::class) {
|
|
|
|
from(components["java"])
|
|
|
|
artifact(javadocJar.get())
|
|
|
|
artifact(sourcesJar.get())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
bintray {
|
|
|
|
user = project.findProperty("bintrayUser")?.toString() ?: ""
|
|
|
|
key = project.findProperty("bintrayKey")?.toString() ?: ""
|
|
|
|
setPublications("mavenJava")
|
|
|
|
|
|
|
|
pkg(closureOf<BintrayExtension.PackageConfig> {
|
|
|
|
repo = "maven"
|
|
|
|
name = "kotlin-result"
|
|
|
|
vcsUrl = "git@github.com:michaelbull/kotlin-result.git"
|
|
|
|
setLicenses("ISC")
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
val build by tasks.existing
|
|
|
|
val generatePomFileForMavenJavaPublication by tasks.existing(GenerateMavenPom::class)
|
|
|
|
val bintrayUpload by tasks.existing(BintrayUploadTask::class)
|
|
|
|
|
|
|
|
bintrayUpload {
|
|
|
|
dependsOn(build)
|
|
|
|
dependsOn(generatePomFileForMavenJavaPublication)
|
|
|
|
dependsOn(sourcesJar)
|
|
|
|
dependsOn(javadocJar)
|
|
|
|
}
|
|
|
|
|
|
|
|
val afterReleaseBuild by tasks.existing
|
|
|
|
|
|
|
|
afterReleaseBuild {
|
|
|
|
dependsOn(bintrayUpload)
|
|
|
|
}
|