Maven Publish PluginでKotlinのソースコードを公開する


概要

Maven Publish Plugin で kotlin のソースコードを添付する方法です。

build.gradle.kts(差分のみ)

以下、既に Maven Publish Plugin を利用している場合向けの、差分のみを示したコードです。
※ 各値は自身の環境に合わせてください

build.gradle.kts
tasks {
    val sourcesJar by creating(Jar::class) {
        archiveClassifier.set("sources")
        from(sourceSets["main"].allSource)
    }
}

afterEvaluate {
    publishing {
        publications {
            create<MavenPublication>("maven") {
                artifact(tasks["sourcesJar"])
            }
        }
    }
}

build.gradle.kts

build.gradle.kts の全体像のサンプルです。

plugins {
    `java-library`
    kotlin("jvm")
    `maven-publish`
}

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72")
}

tasks {
    compileKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
    compileTestKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
    val sourcesJar by creating(Jar::class) {
        archiveClassifier.set("sources")
        from(sourceSets["main"].allSource)
    }
}

afterEvaluate {
    publishing {
        publications {
            create<MavenPublication>("maven") {
                from(components["kotlin"])
                artifact(tasks["sourcesJar"])
                groupId = "com.example"
                artifactId = "foo-bar"
                version = "1.0.0"
            }
        }
    }
}

実行

./gradlew publishMavenPublicationToMavenLocal