buildscript { repositories { mavenCentral() jcenter() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" } } plugins { 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' id 'org.jetbrains.dokka' version '0.9.17' } apply plugin: 'kotlin' apply plugin: 'maven-publish' description = 'A Result monad for modelling success or failure operations.' repositories { mavenCentral() } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" testImplementation "junit:junit:$junitVersion" testImplementation "org.jetbrains.kotlin:kotlin-test-common:$kotlinVersion" testImplementation "org.jetbrains.kotlin:kotlin-test-annotations-common:$kotlinVersion" testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlinVersion" testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlinVersion" } 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