Компилировать Groovy и Kotlin?

Я работаю над небольшим проектом с Groovy и Kotlin, а мой код Kotlin зависит от моего кода Groovy, а не наоборот. Тем не менее, Kotlin компилирует мой код сначала вместо Groovy, и, как результат, я получаю такие ошибки, как Unresolved reference: SiteRepository

Любые предложения, как я могу это исправить, изменив последовательность сборки или Kotlin, явно зависящую от Groovy, или любое другое предложение?

Это можно сделать так:

Groovy First:

 compileGroovy.dependsOn = compileGroovy.taskDependencies.values - 'compileJava' compileKotlin.dependsOn compileGroovy compileKotlin.classpath += files(compileGroovy.destinationDir) classes.dependsOn compileKotlin 

или Котлин Первый:

 compileKotlin.dependsOn = compileKotlin.taskDependencies.values - 'compileJava' compileGroovy.dependsOn compileKotlin compileGroovy.classpath += files(compileKotlin.destinationDir) classes.dependsOn compileGroovy 

Чтобы быть понятным, вы можете выбрать, зависит ли ваш код Котлина от Groovy или Groovy от Kotlin, но вы не можете получить его в обоих направлениях.

Я думаю, что невозможно скомпилировать Kotlin против Groovy в одном модуле, но вы можете перемещать Groovy (или Kotlin) в отдельный модуль. Groovy будет скомпилирован в банке, и теперь Котлин может зависеть от кода Groovy. Чтобы помочь вам, я написал простой проект и опубликовал его на github.

upd 1:

Я создаю новый модуль и проект с kotlin и groovy и проверяю зависимости задач:

 ./gradlew -m kotlin-groovy:build :kotlin-groovy:compileKotlin SKIPPED :kotlin-groovy:compileJava SKIPPED :kotlin-groovy:compileGroovy SKIPPED :kotlin-groovy:processResources SKIPPED :kotlin-groovy:classes SKIPPED :kotlin-groovy:jar SKIPPED :kotlin-groovy:assemble SKIPPED :kotlin-groovy:compileTestKotlin SKIPPED :kotlin-groovy:compileTestJava SKIPPED :kotlin-groovy:compileTestGroovy SKIPPED :kotlin-groovy:processTestResources SKIPPED :kotlin-groovy:testClasses SKIPPED :kotlin-groovy:test SKIPPED :kotlin-groovy:check SKIPPED :kotlin-groovy:build SKIPPED BUILD SUCCESSFUL Total time: 2.587 secs 

Похоже, что порядок сортировки котлинских и хороших задач достаточно. Но если мы изменим шаги таким образом:

 ./gradlew -m kotlin-groovy:build :kotlin-groovy:compileGroovy SKIPPED :kotlin-groovy:compileKotlin SKIPPED :kotlin-groovy:compileJava SKIPPED :kotlin-groovy:processResources SKIPPED :kotlin-groovy:classes SKIPPED :kotlin-groovy:jar SKIPPED :kotlin-groovy:assemble SKIPPED :kotlin-groovy:compileTestKotlin SKIPPED :kotlin-groovy:compileTestJava SKIPPED :kotlin-groovy:compileTestGroovy SKIPPED :kotlin-groovy:processTestResources SKIPPED :kotlin-groovy:testClasses SKIPPED :kotlin-groovy:test SKIPPED :kotlin-groovy:check SKIPPED :kotlin-groovy:build SKIPPED BUILD SUCCESSFUL Total time: 2.745 secs 

Сборка по-прежнему не работает, потому что Котлин не видит Groovy.