Identify and re-throw our dependency checking errors in flutter.groovy (#149609)

The application of the `dependency_version_checker` gradle plugin is wrapped in a try catch, which prevented blocking the build in https://github.com/flutter/flutter/pull/149204. This pr re-throws the errors we intended to throw.
This commit is contained in:
Gray Mackall 2024-06-04 15:06:25 -07:00 committed by GitHub
parent 92f8455ff8
commit 9d1de7b674
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 35 additions and 7 deletions

View File

@ -98,7 +98,6 @@ class FlutterExtension {
return flutterVersionName
}
}
// This buildscript block supplies dependencies for this file's own import
@ -340,10 +339,27 @@ class FlutterPlugin implements Plugin<Project> {
"packages", "flutter_tools", "gradle", "src", "main", "kotlin",
"dependency_version_checker.gradle.kts")
project.apply from: dependencyCheckerPluginPath
} catch (Exception ignored) {
} catch (Exception e) {
// If the exception was thrown by us in the dependency version checker plugin then
// re-throw it.
Exception outer = e.getCause()
if (outer != null) {
Exception inner = outer.getCause()
if (inner != null) {
Exception unwrapped = inner.getCause()
if (unwrapped != null) {
if (unwrapped instanceof DependencyValidationException) {
throw e
}
}
}
}
// Otherwise, dependency version checking has failed. Log and continue
// the build.
project.logger.error("Warning: Flutter was unable to detect project Gradle, Java, " +
"AGP, and KGP versions. Skipping dependency version checking. Error was: "
+ ignored)
+ e)
}
}
@ -1814,3 +1830,15 @@ class FlutterTask extends BaseFlutterTask {
}
}
// Custom error for when the dependency_version_checker.kts script finds a dependency out of
// the defined support range.
class DependencyValidationException extends Exception {
public DependencyValidationException(String errorMessage) {
super(errorMessage);
}
public DependencyValidationException(String errorMessage, Throwable cause) {
super(errorMessage, cause);
}
}

View File

@ -235,7 +235,7 @@ class DependencyVersionChecker {
errorGradleVersion.toString(),
getPotentialGradleFix(project.getRootDir().getPath())
)
throw GradleException(errorMessage)
throw DependencyValidationException(errorMessage)
} else if (version < warnGradleVersion) {
val warnMessage: String =
getWarnMessage(
@ -260,7 +260,7 @@ class DependencyVersionChecker {
errorJavaVersion.toString(),
POTENTIAL_JAVA_FIX
)
throw GradleException(errorMessage)
throw DependencyValidationException(errorMessage)
} else if (version < warnJavaVersion) {
val warnMessage: String =
getWarnMessage(
@ -285,7 +285,7 @@ class DependencyVersionChecker {
errorAGPVersion.toString(),
getPotentialAGPFix(project.getRootDir().getPath())
)
throw GradleException(errorMessage)
throw DependencyValidationException(errorMessage)
} else if (version < warnAGPVersion) {
val warnMessage: String =
getWarnMessage(
@ -310,7 +310,7 @@ class DependencyVersionChecker {
errorKGPVersion.toString(),
getPotentialKGPFix(project.getRootDir().getPath())
)
throw GradleException(errorMessage)
throw DependencyValidationException(errorMessage)
} else if (version < warnKGPVersion) {
val warnMessage: String =
getWarnMessage(