Compile Groovy y Kotlin?

Estoy trabajando en un pequeño proyecto con Groovy y Kotlin, y mi código de Kotlin depende de mi código de Groovy, no al revés. Sin embargo, Kotlin comstack mi código primero en lugar de Groovy y, como resultado, obtengo errores como la Unresolved reference: SiteRepository

¿Alguna sugerencia de cómo puedo solucionar esto, ya sea cambiando la secuencia de compilation, o Kotlin dependiendo explícitamente de Groovy, o cualquier otra sugerencia?

Se puede hacer así:

Groovy primero:

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

o Kotlin Primero:

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

Para que quede claro, puedes elegir si tu código de Kotlin depende de Groovy o Groovy en Kotlin, pero no puedes tenerlo de las dos maneras.

Creo que no es posible comstackr Kotlin contra Groovy en un module, pero puedes mover Groovy (o Kotlin) en un module por separado. Groovy se comstackrá en jar, y Kotlin ahora puede depender del código de Groovy. Para ayudarte, escribí un proyecto simple y lo publiqué en github.

upd 1:

Creo un nuevo module y proyecto con kotlin y groovy, e inspecciono las dependencies de tareas:

 ./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 

Parece suficiente el order de cambio de kotlin y las tareas geniales. Pero si cambiamos los pasos de esta manera:

 ./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 

La compilation todavía no funciona, porque Kotlin no ve a Groovy.