Migrate to Kotlin Gradle DSL
This commit is contained in:
parent
b93dd4457c
commit
80bd9dd692
83
build.gradle
83
build.gradle
@ -1,83 +0,0 @@
|
|||||||
plugins {
|
|
||||||
id 'maven-publish'
|
|
||||||
id 'org.jetbrains.kotlin.jvm' version '1.2.70'
|
|
||||||
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'
|
|
||||||
}
|
|
||||||
|
|
||||||
description = 'A Result monad for modelling success or failure operations.'
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
|
|
||||||
|
|
||||||
testImplementation 'junit:junit:4.12'
|
|
||||||
testImplementation 'org.jetbrains.kotlin:kotlin-test-common'
|
|
||||||
testImplementation 'org.jetbrains.kotlin:kotlin-test-annotations-common'
|
|
||||||
testImplementation 'org.jetbrains.kotlin:kotlin-test-junit'
|
|
||||||
testImplementation 'org.jetbrains.kotlin:kotlin-test'
|
|
||||||
}
|
|
||||||
|
|
||||||
compileKotlin {
|
|
||||||
kotlinOptions.jvmTarget = "1.8"
|
|
||||||
}
|
|
||||||
|
|
||||||
compileTestKotlin {
|
|
||||||
kotlinOptions.jvmTarget = "1.8"
|
|
||||||
}
|
|
||||||
|
|
||||||
dokka {
|
|
||||||
kotlinTasks { [ ] }
|
|
||||||
sourceDirs = sourceSets.main.kotlin.srcDirs
|
|
||||||
outputFormat = 'javadoc'
|
|
||||||
outputDirectory = "${docsDir}/javadoc"
|
|
||||||
}
|
|
||||||
|
|
||||||
task javadocJar(type: Jar, dependsOn: dokka) {
|
|
||||||
group = LifecycleBasePlugin.BUILD_GROUP
|
|
||||||
description = 'Assembles a jar archive containing the Javadoc API documentation.'
|
|
||||||
classifier = 'javadoc'
|
|
||||||
from dokka.outputDirectory
|
|
||||||
}
|
|
||||||
|
|
||||||
task sourcesJar(type: Jar) {
|
|
||||||
group = LifecycleBasePlugin.BUILD_GROUP
|
|
||||||
description = 'Assembles a jar archive containing the main classes with sources.'
|
|
||||||
classifier = 'sources'
|
|
||||||
from sourceSets.main.allSource
|
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
|
||||||
publications {
|
|
||||||
mavenJava(MavenPublication) {
|
|
||||||
from components.java
|
|
||||||
artifact javadocJar
|
|
||||||
artifact sourcesJar
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bintray {
|
|
||||||
user = project.findProperty('bintrayUser') ?: ''
|
|
||||||
key = project.findProperty('bintrayKey') ?: ''
|
|
||||||
publications = [ 'mavenJava' ]
|
|
||||||
|
|
||||||
pkg {
|
|
||||||
repo = 'maven'
|
|
||||||
name = 'kotlin-result'
|
|
||||||
licenses = [ 'ISC' ]
|
|
||||||
vcsUrl = 'git@github.com:michaelbull/kotlin-result.git'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bintrayUpload.dependsOn build
|
|
||||||
bintrayUpload.dependsOn sourcesJar
|
|
||||||
bintrayUpload.dependsOn javadocJar
|
|
||||||
bintrayUpload.dependsOn generatePomFileForMavenJavaPublication
|
|
||||||
|
|
||||||
afterReleaseBuild.dependsOn bintrayUpload
|
|
111
build.gradle.kts
Normal file
111
build.gradle.kts
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
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`
|
||||||
|
kotlin("jvm") version ("1.2.70")
|
||||||
|
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 {
|
||||||
|
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
|
||||||
|
|
||||||
|
testImplementation("junit:junit:4.12")
|
||||||
|
testImplementation("org.jetbrains.kotlin:kotlin-test-common")
|
||||||
|
testImplementation("org.jetbrains.kotlin:kotlin-test-annotations-common")
|
||||||
|
testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
|
||||||
|
testImplementation("org.jetbrains.kotlin:kotlin-test")
|
||||||
|
}
|
||||||
|
|
||||||
|
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"
|
||||||
|
dependsOn(dokka.get())
|
||||||
|
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)
|
||||||
|
}
|
@ -1,35 +0,0 @@
|
|||||||
plugins {
|
|
||||||
id 'application'
|
|
||||||
id 'org.jetbrains.kotlin.jvm'
|
|
||||||
}
|
|
||||||
|
|
||||||
mainClassName = 'io.ktor.server.netty.DevelopmentEngine'
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
maven { url = "http://dl.bintray.com/kotlin/ktor" }
|
|
||||||
maven { url = "https://dl.bintray.com/kotlin/kotlinx" }
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation project(":")
|
|
||||||
implementation "ch.qos.logback:logback-classic:$logbackVersion"
|
|
||||||
implementation "io.ktor:ktor-server-core:$ktorVersion"
|
|
||||||
implementation "io.ktor:ktor-server-netty:$ktorVersion"
|
|
||||||
implementation "io.ktor:ktor-gson:$ktorVersion"
|
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
|
|
||||||
}
|
|
||||||
|
|
||||||
compileKotlin {
|
|
||||||
kotlinOptions.jvmTarget = "1.8"
|
|
||||||
}
|
|
||||||
|
|
||||||
compileTestKotlin {
|
|
||||||
kotlinOptions.jvmTarget = "1.8"
|
|
||||||
}
|
|
||||||
|
|
||||||
kotlin {
|
|
||||||
experimental {
|
|
||||||
coroutines "enable"
|
|
||||||
}
|
|
||||||
}
|
|
40
example/build.gradle.kts
Normal file
40
example/build.gradle.kts
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import org.jetbrains.kotlin.gradle.dsl.Coroutines
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
application
|
||||||
|
kotlin("jvm")
|
||||||
|
}
|
||||||
|
|
||||||
|
application {
|
||||||
|
mainClassName = "io.ktor.server.netty.DevelopmentEngine"
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
maven(url = "http://dl.bintray.com/kotlin/ktor")
|
||||||
|
maven(url = "https://dl.bintray.com/kotlin/kotlinx")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(project(":"))
|
||||||
|
implementation(kotlin("stdlib-jdk8"))
|
||||||
|
implementation("ch.qos.logback:logback-classic:${ext["logbackVersion"]}")
|
||||||
|
implementation("io.ktor:ktor-server-core:${ext["ktorVersion"]}")
|
||||||
|
implementation("io.ktor:ktor-server-netty:${ext["ktorVersion"]}")
|
||||||
|
implementation("io.ktor:ktor-gson:${ext["ktorVersion"]}")
|
||||||
|
}
|
||||||
|
|
||||||
|
val compileKotlin by tasks.existing(KotlinCompile::class)
|
||||||
|
val compileTestKotlin by tasks.existing(KotlinCompile::class)
|
||||||
|
|
||||||
|
compileKotlin {
|
||||||
|
kotlinOptions.jvmTarget = "1.8"
|
||||||
|
}
|
||||||
|
|
||||||
|
compileTestKotlin {
|
||||||
|
kotlinOptions.jvmTarget = "1.8"
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
experimental.coroutines = Coroutines.ENABLE
|
||||||
|
}
|
@ -1,5 +0,0 @@
|
|||||||
rootProject.name = 'kotlin-result'
|
|
||||||
|
|
||||||
include 'example'
|
|
||||||
|
|
||||||
enableFeaturePreview('STABLE_PUBLISHING')
|
|
5
settings.gradle.kts
Normal file
5
settings.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
enableFeaturePreview("STABLE_PUBLISHING")
|
||||||
|
|
||||||
|
rootProject.name = "kotlin-result"
|
||||||
|
|
||||||
|
include("example")
|
Loading…
Reference in New Issue
Block a user