This is an automated email from the ASF dual-hosted git repository. lcwik pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push: new feaa1a277b2 Use --release 8 for builds targeting Java 8 (#23771) feaa1a277b2 is described below commit feaa1a277b20ae555fe488000bcffebd8c18a9ed Author: Liam Miller-Cushon <cus...@google.com> AuthorDate: Thu Oct 27 18:45:23 2022 -0700 Use --release 8 for builds targeting Java 8 (#23771) * Use --release 8 for builds targeting Java 8 This ensures cross compilation works correctly when building on JDK 11 and targeting Java 8. * Update buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy Co-authored-by: Lukasz Cwik <lc...@google.com> * Review feedback * Update buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy Co-authored-by: Lukasz Cwik <lc...@google.com> * Adjust javaVersion configuration Co-authored-by: Lukasz Cwik <lc...@google.com> --- .../main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 9 +++++++++ sdks/java/container/agent/build.gradle | 10 +++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index fa6bfaf6dec..7e4c8a1674d 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -914,6 +914,15 @@ class BeamModulePlugin implements Plugin<Project> { project.tasks.withType(JavaCompile).configureEach { options.encoding = "UTF-8" + // Use --release 8 when targeting Java 8 and running on JDK > 8 + // + // Consider migrating compilation and testing to use JDK 9+ and setting '--release=8' as + // the default allowing 'applyJavaNature' to override it for the few modules that need JDK 9+ + // artifacts. See https://stackoverflow.com/a/43103038/4368200 for additional details. + if (JavaVersion.VERSION_1_8.compareTo(JavaVersion.toVersion(project.javaVersion)) == 0 + && JavaVersion.VERSION_1_8.compareTo(JavaVersion.current()) < 0) { + options.compilerArgs += ['--release', '8'] + } // As we want to add '-Xlint:-deprecation' we intentionally remove '-Xlint:deprecation' from compilerArgs here, // as intellij is adding this, see https://youtrack.jetbrains.com/issue/IDEA-196615 options.compilerArgs -= [ diff --git a/sdks/java/container/agent/build.gradle b/sdks/java/container/agent/build.gradle index 9d86fd430a6..df3780e4544 100644 --- a/sdks/java/container/agent/build.gradle +++ b/sdks/java/container/agent/build.gradle @@ -19,6 +19,13 @@ plugins { id 'org.apache.beam.module' } + +if (project.hasProperty('java11Home')) { + javaVersion = "1.11" +} else if (project.hasProperty('java17Home')) { + javaVersion = "1.17" +} + applyJavaNature( exportJavadoc: false, publish: false @@ -35,9 +42,7 @@ jar { } } - if (project.hasProperty('java11Home')) { - javaVersion = "1.11" def java11Home = project.findProperty('java11Home') project.tasks.withType(JavaCompile) { options.fork = true @@ -45,7 +50,6 @@ if (project.hasProperty('java11Home')) { options.compilerArgs += ['-Xlint:-path'] } } else if (project.hasProperty('java17Home')) { - javaVersion = "1.17" project.tasks.withType(JavaCompile) { setJava17Options(options)