如何使用gradle kotlin-dsl添加新的sourceset

l7mqbcuq  于 2023-08-06  发布在  Kotlin
关注(0)|答案(9)|浏览(191)

我想添加一个源集src/gen/java。使用groovy,这非常容易,并且已经在https://discuss.gradle.org/t/how-to-use-gradle-with-generated-sources/9401/5中进行了描述

sourceSets {
   gen {
        java.srcDir "src/gen/java"
    }
}

字符串
但是我坚持使用kotlin-dsl来添加一个新的。我只知道

java {
    sourceSets {

    }
}


有人能帮我

r1zk6ea1

r1zk6ea11#

@s1m0nw1的答案正确,可以添加新的源集。但是要在现有的源集中添加一个新的源文件夹,可以使用:

java.sourceSets["main"].java {
    srcDir("src/gen/java")
}

字符串

mlnl4t2r

mlnl4t2r2#

您应该尝试以下操作:

java.sourceSets.create("src/gen/java")

字符串
希望这是你需要的!

uajslkp6

uajslkp63#

在Gradle 4.10.2上运行:

sourceSets.getByName("main") {
    java.srcDir("src/main/java")
    java.srcDir("src/main/kotlin")
}
sourceSets.getByName("test") {
    java.srcDir("src/test/java")
    java.srcDir("src/test/kotlin")
}

字符串
以上代码也可以用于subprojects块。

gopyfrb3

gopyfrb34#

在Gradle 4.10.2上运行:

sourceSets.create("integrationTest") {
    java.srcDir("src/integrationTest/java")
    java.srcDir("build/generated/source/apt/integrationTest")
    resources.srcDir("src/integrationTest/resources")
}

字符串

webghufk

webghufk5#

Kotlin-DSL

sourceSets {
        this.getByName("androidTest"){
            //Adds the given source directory to this set.
            this.java.srcDir("src/mock/java")
        }
        this.getByName("test"){
            this.java.srcDir("src/mock/java")
        }
    }

字符串

798qvoo8

798qvoo86#

我想添加一个名为“test-integration”的源代码集和源代码目录src/test-integration/kotlin。我能够通过结合两个预先存在的答案来实现这一点:

java.sourceSets.create("test-integration").java {
    srcDir("src/test-integration/kotlin")
}

字符串

inb24sb2

inb24sb27#

从Gradle 7.5开始:

sourceSets {
    main {
        java.sourceSets {
            create("gen"){
                java.srcDir("src/gen/java")
            }
        }
    }
}

字符串

7fhtutme

7fhtutme8#

这是我以前的:

main.kotlin.srcDirs = main.java.srcDirs = ['src']
test.kotlin.srcDirs = test.java.srcDirs = ['test']
main.resources.srcDirs = ['resources']
test.resources.srcDirs = ['testresources']

字符串
上面现在翻译为:

sourceSets {
main {
    java {
        srcDirs("src")
    }
    resources {
        srcDirs("resources")
    }
}
test {
    java {
        srcDirs("test")
    }
    resources {
        srcDirs("testresources")
    }
}}

von4xj4u

von4xj4u9#

如果你想知道如何在Jetpack Compose + Jvm应用程序中执行:

plugins {
    kotlin("jvm")
    id("org.jetbrains.compose") version "1.4.1"
}

kotlin {
    sourceSets {
        main {
            kotlin.srcDir("src/jvmMain/kotlin")
            resources.srcDir("src/jvmMain/res")
        }
    }

    dependencies {
        implementation(compose.desktop.currentOs)
    }
}

字符串

相关问题