mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Add support for type-safe plugin apply (#150958)
The Gradle Kotlin DSL also allows for type-safe application of the Flutter Gradle plugin, which is currently undetected by the CLI ```kotlin plugins { dev.flutter.`flutter-gradle-plugin` } ``` Please note that the added test case isn't ideal, since the example gradle isn't actually valid kotlin DSL, however the `kotlin host app language with Gradle Kotlin DSL` is identical Fixes #149859
This commit is contained in:
parent
47e65e806f
commit
3a97a38c41
@ -544,7 +544,9 @@ class AndroidProject extends FlutterProjectPlatform {
|
|||||||
// pluginManagement block of the settings.gradle file.
|
// pluginManagement block of the settings.gradle file.
|
||||||
// See https://docs.gradle.org/current/userguide/composite_builds.html#included_plugin_builds,
|
// See https://docs.gradle.org/current/userguide/composite_builds.html#included_plugin_builds,
|
||||||
// as well as the settings.gradle and build.gradle templates.
|
// as well as the settings.gradle and build.gradle templates.
|
||||||
final bool declarativeApply = line.contains('dev.flutter.flutter-gradle-plugin');
|
final bool declarativeApply = line.contains(
|
||||||
|
RegExp(r'dev\.flutter\.(?:(?:flutter-gradle-plugin)|(?:`flutter-gradle-plugin`))'),
|
||||||
|
);
|
||||||
|
|
||||||
// This case allows for flutter run/build to work for modules. It does
|
// This case allows for flutter run/build to work for modules. It does
|
||||||
// not guarantee the Flutter Gradle Plugin is applied.
|
// not guarantee the Flutter Gradle Plugin is applied.
|
||||||
|
@ -805,6 +805,28 @@ plugins {
|
|||||||
id "kotlin-android"
|
id "kotlin-android"
|
||||||
id "dev.flutter.flutter-gradle-plugin"
|
id "dev.flutter.flutter-gradle-plugin"
|
||||||
}
|
}
|
||||||
|
''';
|
||||||
|
});
|
||||||
|
expect(project.android.isKotlin, isTrue);
|
||||||
|
}, overrides: <Type, Generator>{
|
||||||
|
FileSystem: () => fs,
|
||||||
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
XcodeProjectInterpreter: () => xcodeProjectInterpreter,
|
||||||
|
FlutterProjectFactory: () => flutterProjectFactory,
|
||||||
|
});
|
||||||
|
|
||||||
|
testUsingContext('kotlin host app language with Gradle Kotlin DSL and typesafe plugin id', () async {
|
||||||
|
final FlutterProject project = await someProject();
|
||||||
|
|
||||||
|
addAndroidGradleFile(project.directory,
|
||||||
|
kotlinDsl: true,
|
||||||
|
gradleFileContent: () {
|
||||||
|
return '''
|
||||||
|
plugins {
|
||||||
|
id "com.android.application"
|
||||||
|
id "kotlin-android"
|
||||||
|
dev.flutter.`flutter-gradle-plugin`
|
||||||
|
}
|
||||||
''';
|
''';
|
||||||
});
|
});
|
||||||
expect(project.android.isKotlin, isTrue);
|
expect(project.android.isKotlin, isTrue);
|
||||||
|
Loading…
Reference in New Issue
Block a user