Desactivar cheque para usar el package 'kotlin' en Gradle

Cuando bash gradlew build mi proyecto, recibo un post de error de la tarea compileKotlin :

 F:\IdeaProjects\walp.tinykotlintest>gradlew build :compileKotlin ... Only the Kotlin standard library is allowed to use the 'kotlin' package ... BUILD FAILED Total time: 6.214 secs 

Esto sucede porque he declarado una class en un package que comienza con: kotlin

¿Hay alguna forma de eliminar esta comprobación configurando mi script build.gradle ?

EDITAR: Sé con certeza que esto es posible si compilo con el comstackdor de kotlin desnudo … aquí hay un ejemplo del uso del comstackdor de kotlin para comstackr una class en el package de kotlin … Así que creo que debería haber una manera de ¡hazlo en Gradle también! … Espero …

Lo que he intentado hasta ahora:

  1. Intenté configurar gradle.build configurando la tarea KotlinCompile:

     import org.jetbrains.kotlin.gradle.tasks.KotlinCompile tasks.withType(KotlinCompile) { it.kotlinOptions.allowKotlinPackage = true } 

    El script de Gradle funciona bien con estos cambios … pero parece que esto se ignora … y todavía encuentro el error.

  2. Traté de subclasificar la class KotlinCompile y anular su beforeCompileHook() y replace la tarea compileKotlin existente con mi versión:

     import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments import org.jetbrains.kotlin.gradle.tasks.KotlinCompile class MyKotlinCompile extends KotlinCompile { @Override public void beforeCompileHook(K2JVMCompilerArguments args) { args.allowKotlinPackage = true throw new RuntimeException("HELLO") // added to see if hook is run } } tasks.create(name: "compileKotlin", type: MyKotlinCompile, overwrite: true) 

    Estudiando el código fuente … Estaba bastante seguro de que esto funcionaría, pero evidentemente no fue así. Intenté con y sin arrojar la exception RuntimeException pero siempre recibo el siguiente error cuando intenté gradle build nuevo:

     F:\IdeaProjects\walp.tinykotlintest>gradlew build --stacktrace :compileKotlin UP-TO-DATE :compileJava UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :jar UP-TO-DATE :sourcesJar UP-TO-DATE :assemble UP-TO-DATE :compileTestKotlin FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileTestKotlin'. > java.lang.NullPointerException (no error message) * Try: Run with --info or --debug option to get more log output. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileTestKotlin'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) . . . at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) Caused by: java.lang.NullPointerException at org.jetbrains.kotlin.gradle.tasks.KotlinCompile$populateTargetSpecificArgs$2.invoke(Tasks.kt:215) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.populateTargetSpecificArgs(Tasks.kt:222) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.populateTargetSpecificArgs(Tasks.kt:148) at org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.execute(Tasks.kt:105) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:243) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:219) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:230) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:208) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) ... 60 more 

Probablemente no debería estar haciendo esto de todos modos … pero realmente quiero probarlo.

¡gracias!

Si la biblioteca estándar de Kotlin es incompatible con la JVM que está utilizando, parece que lo que debería hacer es fork Kotlin, realizar los cambios necesarios para la compatibilidad con su JVM, y luego usar el script de construcción Maven estándar para build su fork . El script ya ofrece la opción de permitir la compilation de files en el package kotlin .

El error no tiene nada que ver con Gradle. El comstackdor de Kotlin no comstackrá el código en un package kotlin less que usted esté desarrollando el Kotlin mismo.

Esto se hizo por la misma razón por la que no se puede escribir código en un package java .