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 .

  • Kotlin AAR library w / proguard: ¿cómo mantener los methods de extensión?
  • Declaración de la function de Kotlin: signo igual que las llaves
  • ¿Kotlin es 100% compatible con ART en Android?
  • Cómo recordar el estado con los operadores de rebashs en RxJava2
  • error al usar 'npm start' con la aplicación creada por 'create-react-kotlin-app'
  • Error al ejecutar un proyecto de Android (escrito en Kotlin) comstackdo con el complemento Gradle2.0.0-alpha
  • El comstackdor de Kotlin no puede deducir que la variable no puede contener nulos en el ciclo do-while
  • Adaptador de enlace de Android no funciona para CustomView
  • ¿Cómo obtengo las funciones declaradas de una class Kotlin (KClass en M12)?
  • Validación Datos Clase Parámetros Kotlin
  • Hibernate ignora el tipo de búsqueda 'vago' y carga las properties de inmediato