2つのソースツリー(クライアントとメイン)を持つプロジェクトがあります。メインはJava 1.8のコンストラクトを含む一方、クライアントはJava 1.7にコンパイルする必要があります。私は定義された以下のGradleのソースセットしている:私はcompileMainJava要素をコメントアウトした場合、私はこのどのようにソースとターゲットの互換性を異なるソースセットに設定するのですか
:compileJavawarning: [options] bootstrap class path not set in conjunction with -source 1.7
C:\dev\eclipse-ws\generic\IoT-Sound\src\main\java\com\ibm\watson\iot\sound\feature\mfcc\MFCCFeatureExtractor.java:129: error: method references are not supported in -source 1.7
double[] x = Stream.of(xDataBoxed).mapToDouble(Double::doubleValue).toArray();
(use -source 8 or higher to enable method references)
を得るため、
sourceSets {
main {
java {
srcDir "src/main/java"
srcDir "src/client/java"
}
}
compileMainJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
client {
java {
srcDir "src/client/java"
}
}
compileClientJava {
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
}
しかし、メインソースセットは明らかに1.7でコンパイルされ、それは両方のビルド私はcompileClientJava(エラーなし)に対して同じ警告を得るので、クライアントを1.7にコンパイルするようです。私は1.8 jdkを使用しているためだと思いますが、とにかくこれらの属性を追加したいと思います。
私はどのようにしてメイン互換性を1.8に設定し、クライアントを1.7に設定するのですか?ありがとう。