Skip to content

Commit 691c4f3

Browse files
committed
fix: jvm 11 error message from build.gradle.kts, ReactPlugin.kt and react.gradle
1 parent 8c5cacf commit 691c4f3

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

packages/react-native-gradle-plugin/build.gradle.kts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
import org.gradle.api.internal.classpath.ModuleRegistry
99
import org.gradle.configurationcache.extensions.serviceOf
10+
import org.gradle.internal.jvm.Jvm
11+
import kotlin.system.exitProcess
1012

1113
plugins {
1214
kotlin("jvm") version "1.6.10"
@@ -50,6 +52,19 @@ java {
5052
targetCompatibility = JavaVersion.VERSION_11
5153
}
5254

55+
val jvmVersion = Jvm.current()?.javaVersion?.majorVersion
56+
if ((jvmVersion!!.toIntOrNull() ?:0) <= 8) {
57+
println("\n\n\n")
58+
println("**************************************************************************************************************")
59+
println("\n\n")
60+
println("ERROR: react-native-gradle-plugin builds with JVM version 11, 14, or 16.")
61+
println("Incompatible major version detected: '" + jvmVersion + "'")
62+
println("\n\n")
63+
println("**************************************************************************************************************")
64+
println("\n\n\n")
65+
exitProcess(1)
66+
}
67+
5368
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
5469
kotlinOptions {
5570
jvmTarget = JavaVersion.VERSION_11.majorVersion

packages/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/ReactPlugin.kt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,32 @@ import java.io.File
1818
import org.gradle.api.Plugin
1919
import org.gradle.api.Project
2020
import org.gradle.api.Task
21+
import org.gradle.internal.jvm.Jvm
22+
import kotlin.system.exitProcess
2123

2224
class ReactPlugin : Plugin<Project> {
2325
override fun apply(project: Project) {
26+
checkJvmVersion()
2427
val extension = project.extensions.create("react", ReactExtension::class.java, project)
2528
applyAppPlugin(project, extension)
2629
applyCodegenPlugin(project, extension)
2730
}
2831

32+
private fun checkJvmVersion(){
33+
val jvmVersion = Jvm.current()?.javaVersion?.majorVersion
34+
if ((jvmVersion!!.toIntOrNull() ?:0) <= 8) {
35+
println("\n\n\n")
36+
println("**************************************************************************************************************")
37+
println("\n\n")
38+
println("ERROR: ReactPlugin.kt builds with JVM version 11, 14, or 16.")
39+
println("Incompatible major version detected: '" + jvmVersion + "'")
40+
println("\n\n")
41+
println("**************************************************************************************************************")
42+
println("\n\n\n")
43+
exitProcess(1)
44+
}
45+
}
46+
2947
private fun applyAppPlugin(project: Project, config: ReactExtension) {
3048
project.afterEvaluate {
3149
if (config.applyAppPlugin.getOrElse(false)) {

react.gradle

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
*/
77

88
import org.apache.tools.ant.taskdefs.condition.Os
9+
import org.gradle.internal.jvm.Jvm
910

1011
def config = project.hasProperty("react") ? project.react : [:];
1112

@@ -129,6 +130,19 @@ android {
129130
}
130131
}
131132

133+
def jvmVersion = Jvm.current().javaVersion.majorVersion
134+
if (jvmVersion.toInteger() <= 8) {
135+
println "\n\n\n"
136+
println "**************************************************************************************************************"
137+
println "\n\n"
138+
println "ERROR: react.gradle builds with JVM version 11, 14, or 16."
139+
println "Incompatible major version detected: '" + jvmVersion + "'"
140+
println "\n\n"
141+
println "**************************************************************************************************************"
142+
println "\n\n\n"
143+
System.exit(1)
144+
}
145+
132146
afterEvaluate {
133147
def isAndroidLibrary = plugins.hasPlugin("com.android.library")
134148
def variants = isAndroidLibrary ? android.libraryVariants : android.applicationVariants

0 commit comments

Comments
 (0)