2013-02-05 6 views
5

mavenまたはgradleでjava7/groovy2のプロジェクトを混在させる場合、groovycを処理するだけでjavacとgroovycをコンパイルする理由はありますか?混合コードプロジェクトでgroovycよりもjavacを使用する理由はありますか?

ベストプラクティスの示唆しているように、別々に、自分のツリー(src/main/javaとsrc/main/groovy)でコンパイルを始めました。しかし、javaとgroovyは同じ問題を解決するために使用されているので混在していますので、src/main/groovyにすべてのソースをダンプし、Groovyコンパイラに.javaファイルと.groovyファイルの両方を扱えるようにしています。これは、ソースツリーを見るときにプロジェクトの実行を簡単にするように思えます。不利な点はありますか?

+0

興味深い、 'groovyc'は、このすることが可能であることを知りませんでした。私はあなたがこれを行うときに得るバイトコードについてのみ心配するでしょう。 –

+0

私はいくつかの可能性のあるaproposドキュメントをhttp://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Mavenとhttp://groovy.codehaus.org/The+groovyc+Ant+タスク しかし、それらは実装固有のようです。 –

+0

GradleビルドのGroovy 1.8での経験から、* .javaファイルをGroovyプラグインでコンパイルすると、Groovy機能が混在していない通常のJavaクラスが生成されます(ExpandoMetaClassは、このようにコンパイルされた純粋なJavaクラスには影響しません)。バイトコードは若干異なるかもしれませんが、JavaのビルドからGroovyのビルドに移行し、必要に応じてGroovyに移行するときに何の違いにも気づいていません。 –

答えて

4

groovycを両方とも処理すると、.java.groovyが良好です。このアプローチは、Grailsフレームワークでも使用されています。 Grails 2はすべての.javaファイルをgroovyソースディレクトリの下に置きます。あなたが今やっていることがベストプラクティスです。ここで

は例です: https://github.com/groovy/groovy-core/tree/master/src/main/groovy/io

+0

ありがとうございます。 –

関連する問題