2017-02-24 5 views
2

をジャーにランタイムを追加することではありません。私は現在、これを使用していますが、私はbuild.gradleの設定を使用してプロジェクトをビルドするときには、ランタイムまたはSTDLIBを含めていません。のGradle compileKotlin includeRuntimeは、私はKotlin Gradleのプロジェクトを持っている、と私はjarファイルにKotlinのランタイムとSTDLIBを含めたい

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

これは私が瓶でランタイム/ STDLIBを含めるために使用していますが、私はそれが期待するようにそれが動作していないのGradleコードです。ここではいくつかのコンテキストのための完全なbuild.gradleファイルがあります: https://github.com/BenWoodworth/CrossPlatformGreeter/blob/bd1da79f36e70e3d88ed871bc35502ecc3a852fb/build.gradle#L35-L43

KotlinのGradleのドキュメントはtrueにkotlinOptions.includeRuntimeを設定すると結果.jarでKotlinランタイムを含めるべきであることを示していると思われます。
https://kotlinlang.org/docs/reference/using-gradle.html#attributes-specific-for-kotlin

編集: これは関連している可能性があります。

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

BUILD SUCCESSFUL 

答えて

1

ここに私が思い付いた代替だ:私はcompileKotlinを実行すると、私は、実行時に関連する警告のカップルを取得しています。これは、ジャータスクを使用してジャーにKotlinランタイムとSTDLIBを追加します。

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) } 
    } 
} 
関連する問題