2017-02-13 19 views
2

私はkotlinの問題を解決できなかったので、プラグインを実装するためにgroovyに戻すことにしました。groovyがkotlinクラスを解決できない

しかし、私は問題に遭遇しました。私はそのようなプロジェクト構造を持っています。

enter image description here

は、すべてのクラスを書き換えないようにするために、私は kotlinに実装されたクラスを再利用することにしました。

しかし私のクラスFileProcessingCoreGroovy & DownloadCoreGroovyは、クラスProcessStreamUnpackStreamを解決することはできません。

私は彼らがお互いを自由に使うことができると思ったが、私は間違っていたと思う。何が問題ですか?

クラス自体が(ように赤い色でマークされていないと)、IDEによってうまくインポートされ

enter image description here

コンソール出力は、(私はPluginUtilsからkotlinクラスをインポート別のクラスを使用して、このようになります。 )

:clean                   
:compileKotlin (...multiple deprecated messages...) 
:compileJava UP-TO-DATE  
:compileGroovy     
startup failed:     
D:\groovy_apps\MISC\gradle-app-environment-plugin\src\main\groovy\com.lapots.gradle.plugins.appenv\ApplicationEnvironmentGroovyPlugin.g 
roovy: 4: unable to resolve class com.lapots.gradle.plugins.appenv.core.PluginUtils 
@ line 4, column 1. 
    import com.lapots.gradle.plugins.appenv.core.PluginUtils 
^       
+0

grootファイルの前にkotlinファイルをコンパイルしますか? – cfrick

+0

Hm。私はデフォルトの順序を使用し、それに従って 'compileKotlin'、' compileJava'、 'compileGroovy'の順にコンパイルします。 – lapots

+0

コンパイル時または実行時にエラーが発生しますか? – cfrick

答えて

0

私は同じ問題がありました。それはKotlinのコンパニオンオブジェクトと関係があります。静的関数をコンパニオンオブジェクトからパッケージレベルに移動し、動作させ始めました。

3

そう簡単ではないようです。

そこからの提案を使用してhttps://discuss.gradle.org/t/kotlin-groovy-and-java-compilation/14903/2

を参照してください、私は

compileGroovy { 
    dependsOn tasks.getByPath('compileKotlin') 
    classpath += files(compileKotlin.destinationDir) 
} 

を追加し、それが働きました。

+0

これをテストコンパイル用に複製することもできます。 compileGroovyをcompileTestGroovyに置き換え、compileTestKotlinでcompileKotlinを置き換えてください –

関連する問題