2016-10-29 12 views
0

私はGrailsプロジェクト(grails 2.3.11)に複数のGrailsプラグインを持っています。 Grailsの主要プロジェクトの1つに、ユーザ定義のGrailsプラグインとコアJavaプロジェクトのほかに、完全なアプリケーションが用意されています。これまでのところ、これらのプロジェクトはAntビルダーを使用してビルドされています。最近Gradleを使用するビルドプロセスをアップグレードしました。特定のjdkを使ったグラデルビルドプロジェクト

gradleプロセスの問題は、プロジェクトによってはjdk 1.7でビルドする必要があり、いくつかはjdk 1.8でビルドする必要があることです。それを修正するために、jdk 1.7を指すようにjava_homeを設定しました。次に、jdk 1.8でビルドするコードが必要なプロジェクトディレクトリにgradle.propertiesファイルを作成しました。プロパティーorg.gradle.java.homeをjdk 1.8を指すように設定してください。今、私はそれがまだjdk 1.7(環境変数として設定されている)を選んでいることがわかったそのようなプロジェクトからjava_home値を印刷します。

ここに私のGradle compileJavaタスク:

compileJava { 
    options.encoding = 'UTF-8' 
    def env = System.getenv("JAVA_HOME") 
    println "Compile Java: JAVAHOME = ${env}" 
    dependsOn ':core:updateversiondotjava' 
    logging.captureStandardOutput LogLevel.DEBUG 
} 

プロジェクトは1.7でビルドすべてのGrailsプロジェクトとGrailsユーザー定義のプラグインです。 1.7でビルドする理由は、grailsのバージョンアップを避けることです。 grails 2.3.x以下はJava 1.8をサポートしていないためです。

誰でも私が間違っているところを案内してくれますか?

+0

これは、Javaプラグインを適用するときにgradleのsourcecompatabityとtargetcompatabilityを使用して実現できます。サブプロジェクトのさまざまなソースとターゲットを設定できます。 – PKR

答えて

0

テストでJava 8で動作するGrails 2.3.11を思い出してください。 Grails 2.3の初期のバージョンはJava 8で動作しませんでした。私は公式サポートが2.4.xから始まったと理解していますが、2.3.11アプリケーションでJava 8を試してみましたか?

+0

はい、Java 8とGrails 2.3.11でビルドアプリケーションを用意してください。何のエラーもなしに構築されます。互換性のあるプラグインにアップグレードしました。しかし、実行時に、特にGrails webflow - withForm()[フォームの提出ハンドラの複製]でエラーが発生します。 Java 8のビルド時のように見えますが、基本的なものはバージョンとの互換性がありません。 –

関連する問題