kotlin - Gradle 6+ : compile groovy before kotlin

标签 kotlin gradle groovy build.gradle gradle-kotlin-dsl

我正在开发一个结合了 groovykotlin 的项目。 我的 Kotlin 类需要来自 groovy 部分的对象,我怎样才能让 gradle 在 kotlin 之前编译 groovy?

我正在使用 Gradle 6.3kotlin-dsl

我尝试了几种解决方案:srcsets order, tasks order, ... 似乎没有任何效果

有什么想法吗?

最佳答案

感谢tim_yates ! (为什么这个文档没有出现在谷歌😧)

这里是kotlingroovy的文档改编

tasks.named<AbstractCompile>("compileGroovy") {
    // Groovy only needs the declared dependencies
    // (and not longer the output of compileJava)
    classpath = sourceSets.main.get().compileClasspath
}

tasks.named<AbstractCompile>("compileKotlin") {
    // Java also depends on the result of Groovy compilation
    // (which automatically makes it depend of compileGroovy)
    classpath += files(sourceSets.main.get().withConvention(GroovySourceSet::class) { groovy }.classesDirectory)
}

关于kotlin - Gradle 6+ : compile groovy before kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61138147/

相关文章:

java - Kotlin 是否支持 AIDL?

android-studio - 在android studio中以C代码输入JNI函数时的art_sigsegv_fault

android - 如何为 AndroidViewModel 创建 View 模型工厂?

java - android项目中不同的kotlin版本

java - 如何在eclipse中获取我的gradle管理的Java项目来解决导入?

groovy - 将现有的 groovy build.gradle 文件转换为基于 kotlin 的 build.gradle.kts

Kotlin Native 如何将 ByteArray 转换为 String?

gradle - 如何在Gradle中合并属性文件?

javascript - 如何从 Javascript 访问我的 groovy/grails 值

hibernate - Grails 2.4.4 完全忽略提取 :'join' *使用 PostgreSQL 时*