簡體   English   中英

使用 Kotlin DSL 構建 jar 與 Gradle 中包含的源?

[英]Building a jar with sources included with Gradle using the Kotlin DSL?

我有一個小的 Kotlin 庫,我正在使用 Gradle Kotlin DSL 構建它,所以我的build.gradle.kts

plugins {
    id("org.jetbrains.kotlin.jvm") version "1.5.31"

    `java-library`
}

group = "foo.bar.api"
version = "1.0"

repositories {
    mavenCentral()
}

dependencies {
    implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")

    testImplementation("org.jetbrains.kotlin:kotlin-test")

    testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
}

我希望能夠構建一個包含已編譯代碼和源代碼的 jar。 我知道我可以通過以下方式獲得單獨的來源 JAR:

java {
    withSourcesJar()
}

但是我還沒有找到正確的方法來構建一個 JAR,它在單個工件中包含源代碼和編譯代碼。

您可能應該調整jar任務,而不是 Java 插件擴展(頂級java子句)。 嘗試這個:

tasks {
    withType<Jar> {
        from(sourceSets["main"].allSource)
        duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    }
}

我在我的項目中快速對其進行了測試,它似乎可以工作,但由於一些怪癖,我需要該duplicatesStrategy 如果沒有它,它可能對你有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM