2016-07-17 15 views
17

私は、Javaの利点のためにJavaに加えてAndroid開発のためにKotlinを使うつもりです。私はAndroid Studioプラグインをインストールし、関連する依存関係を自分のgradleファイルに含めました。KotlinファイルをAndroidの別のソースディレクトリに置く必要がありますか?

だから私はそれはそうのような、Kotlinファイル用に別のソースディレクトリを含めることが可能だということKotlinのマニュアルおよびスタックオーバーフローから読んだ:

アプリ:
-manifest
-java

-kotlin -res

私はこのDIRECTOを作成することができます知っています私build.gradleファイルに以下を追加してRY:

sourceSets { 
    main.java.srcDirs += 'src/main/kotlin' 
} 

は、私の質問は:すべきKotlinファイル「ライブ」のJavaファイルと同じディレクトリにあるかどうか?

意見に加えて、私はこのための特別な慣習があるかどうか、もしそうであれば、それがなぜその方法なのかを知りたいと思います。

そうでない場合は、各オプションの長所と短所は何ですか?

答えて

22

Kotlinファイルを別のソースディレクトリに置くことは、Kotlinの初期バージョン(1.0より前のバージョン)ではこれがサポートされている唯一のセットアップであったため、文書化されている可能性があります。その後、Kotlin Gradleプラグインはより柔軟になりました。そのため、ディレクトリの分離はもはや必要ありません。私はKotlinファイルを別のソースディレクトリに置くことによって得られる利益を認識していません。

別のソースディレクトリを持つことは、徐々にKotlinに変換しているJavaプロジェクトを持っていると特に不便です。変換された各ファイルを別のソースディレクトリに移動すると、変換処理が不必要に煩雑になります。

+0

ありがとうございました。私はすでにかなり大規模なJavaプロジェクト(Android用)を用意しています。これはKotlinファイルを追加して、いくつかのJavaファイルをKotlinに変換する予定です。私は、変換された各ファイルを移動するのは面倒であることに同意します。また、通常はJavaファイルと同じパッケージの下にあるKotlinファイルを見つけるためには、別のディレクトリを移動する必要があることも不都合です。現時点では、すべてのファイルを1つのソースディレクトリの下に置くことを選択していますが、 'java'ソースディレクトリの名前をより適切なものに変更する方法があります。 –

+0

質問に示されているのと同じセットアップコードを使用して、好きな名前のソースルートを作成し、単に "java"ソースルートを削除することができます。しかし、あなたが慣習を心配しているなら、私はそのような設定は従来のものとは思わない。 – yole

+0

もう一度ありがとうございます。私は今、 'java'ソースディレクトリを使い続けるつもりだと思っています。おそらくたくさんのkotlinファイルがあると、それらを別のソースディレクトリに移動します。 –

4

ファイルの配置がKotlinコンパイラに大きな影響を与えるわけではないので、Javaファイルの場合と同じようにモジュールを論理的に配置するのが慣例です。

たとえば、JavaクラスをKotlinに変換してリファクタリングすることにした場合、結果のKotlinファイルは元のJavaファイルの代わりになります。

+1

あなたの答えをありがとう。'java'ソースディレクトリの名前を変更する方法はありますか?javaソースファイルだけでなく、kotlinソースファイルも含んでいるので、もっと理にかなっていますか? –

+1

それは、コトリンのことであるという学年の質問です。個人的に私は何も名前を変更するのに気にしませんでした – voddan

+0

空のコットンの主活動を実行しようとするとclassnotfoundeceptionを得ていますか? –

関連する問題