¿Kotlin 1.2.10 y Java 9 tienen reglas opuestas con respecto a los módulos automáticos?

Tengo un proyecto Gradle con el complemento Kotlin Gradle. Quiero construir un módulo Java 9, por lo que mi estructura de directorios se ve así:

src/main/java/
    - module-info.java
src/main/kotlin/
    - Foo.kt
    - Bar.kt
build.gradle
...

Mibuild.gradle declara las siguientes dependencias:

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.10"
    compile "org.jetbrains.kotlin:kotlin-reflect:1.2.10"
    compile "org.junit.jupiter:junit-jupiter-api:5.0.2"
}

y uso todas estas dependencias en mi fuente Kotlin (Foo.kt, Bar.kt, ...)

Todo funciona hunky-dory si escribo mimodule-info.java al igual que:

module my.module {
    requires kotlin.stdlib;
    exports my.module.pkg;
}

y si proporciono todas mis dependencias en tiempo de compilación ajavac durante elcompileJava tarea utilizandoesta tecnica.

sin embargo si enciendo-Xlint:all para el compilador de Java durante elcompileJava tarea (para compilarmodule-info.java), Recibo las siguientes advertencias:

/path/to/my.module/src/main/java/module-info.java:26: warning: requires directive for an automatic module
    requires kotlin.stdlib;
                   ^

Así que aquí tenemos el compilador de Java,javac quejándose de quekotlin.stdlib es un módulo automático, así que no debería tener unrequires cláusula para ello.

Pero si borro elrequires cláusula para hacerjavac feliz, hacekotlinc incluso más enojado quejavac fue (recibo un error, no una advertencia):

e: /path/to/my.module/src/main/java/module-info.java: The Kotlin standard library is not found in the module graph. Please ensure you have the 'requires kotlin.stdlib' clause in your module definition

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':my.module:compileKotlin'.

Ahora también puedo arreglar eso editando micompileKotlin tarea así:

compileKotlin {
    doFirst {
        kotlinOptions.freeCompilerArgs = ['-Xallow-kotlin-package']
    }
}

Pero esto solo conduce a MÁS errores durante elcompileKotlin tarea, todas parecidas a esta:

e: /path/to/my.module/src/main/kotlin/Foo.kt: (27, 30): Symbol is declared in module 'org.junit.jupiter.api' which current module does not depend on

Y luego si trato de forzarcompileKotlin tomar una ruta de módulo en lugar de una ruta de clase agregando"-Xmodule-path=${classpath.asPath}" afreeCompilerArgs y ambientaciónclasspath para estar vacío, el compilador de Kotlin no puede encontrar nada en absoluto, ¡y termino con millones de errores de referencia sin resolver!

¿Por qué el compilador de Kotlin me dice que tengo que tenerrequires kotlin.stdlib; cuando el compilador de Java dice lo contrario? ¿Cómo puedo hacer que Kotlin y Java trabajen juntos para producir un módulo Java 9?

Respuestas a la pregunta(2)

Su respuesta a la pregunta