2017-02-24 6 views
2

J'ai un projet Kotlin Gradle, et je voudrais inclure le runtime de Kotlin et stdlib dans le fichier jar. J'utilise actuellement ceci, mais cela n'inclut pas le runtime ou le stdlib quand je construis le projet en utilisant la configuration de build.gradle.Gradle compileKotlin includeRuntime ne pas ajouter runtime à jar

compileKotlin { 
    kotlinOptions { 
     includeRuntime = true 
     noStdlib = false 
    } 
} 

Voici le code Gradle j'utilise pour inclure le moteur d'exécution/stdlib dans le pot, mais il ne fonctionne pas comme je l'attends à. Voici le dossier complet de build.gradle pour un certain contexte: https://github.com/BenWoodworth/CrossPlatformGreeter/blob/bd1da79f36e70e3d88ed871bc35502ecc3a852fb/build.gradle#L35-L43

documentation Gradle de Kotlin semble indiquer que la mise en kotlinOptions.includeRuntime true devrait inclure le moteur d'exécution Kotlin dans le .jar résultant.
https://kotlinlang.org/docs/reference/using-gradle.html#attributes-specific-for-kotlin

Edit: Cela pourrait être lié. Quand je lance compileKotlin, je reçois deux ou trois avertissements liés à l'exécution:

:compileKotlin 
w: Classpath entry points to a non-existent location: <no_path>\lib\kotlin-runtime.jar 

BUILD SUCCESSFUL 

Répondre

1

Voici une alternative que je suis venu avec. Il va ajouter le runtime Kotlin et stdlib au jar en utilisant la tâche jar.

jar { 
    from { 
     String[] include = [ 
      "kotlin-runtime-${version_kotlin}.jar", 
      "kotlin-stdlib-${version_kotlin}.jar" 
     ] 

     configurations.compile 
       .findAll { include.contains(it.name) } 
       .collect { it.isDirectory() ? it : zipTree(it) } 
    } 
}