私は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をサポートしていないためです。
誰でも私が間違っているところを案内してくれますか?
これは、Javaプラグインを適用するときにgradleのsourcecompatabityとtargetcompatabilityを使用して実現できます。サブプロジェクトのさまざまなソースとターゲットを設定できます。 – PKR