Revert "Use the maven-publish plugin to publish AAR files. (#101276)" (#101827)

This reverts commit 2b0255f0d9f38f5671eaffe2438240ed048670cc.
diff --git a/.ci.yaml b/.ci.yaml
index 2cdbefa..e94fccc 100755
--- a/.ci.yaml
+++ b/.ci.yaml
@@ -19,7 +19,7 @@
           {"name":"android_sdk","path":"android"},
           {"name":"chrome_and_driver_96","path":"chrome"},
           {"name":"flutter_sdk","path":"flutter sdk"},
-          {"name":"openjdk_11","path":"java"},
+          {"name":"openjdk","path":"java"},
           {"name":"pub_cache","path":".pub-cache"}
         ]
       dependencies: >-
@@ -37,7 +37,7 @@
           {"name":"chrome_and_driver_96","path":"chrome"},
           {"name":"flutter_sdk","path":"flutter sdk"},
           {"name":"gradle","path":"gradle"},
-          {"name":"openjdk_11","path":"java"},
+          {"name":"openjdk","path":"java11"},
           {"name":"pub_cache","path":".pub-cache"}
         ]
       dependencies: >-
@@ -57,7 +57,7 @@
           {"name":"chrome_and_driver_96","path":"chrome"},
           {"name":"flutter_sdk","path":"flutter sdk"},
           {"name":"gradle","path":"gradle"},
-          {"name":"openjdk_11","path":"java"},
+          {"name":"openjdk","path":"java11"},
           {"name":"pub_cache","path":".pub-cache"}
         ]
       dependencies: >-
@@ -76,7 +76,7 @@
           {"name":"android_sdk","path":"android"},
           {"name":"chrome_and_driver_96","path":"chrome"},
           {"name":"flutter_sdk","path":"flutter sdk"},
-          {"name":"openjdk_11","path":"java"},
+          {"name":"openjdk","path":"java11"},
           {"name":"osx_sdk_13a233","path":"osx_sdk"},
           {"name":"pub_cache","path":".pub-cache"},
           {"name":"xcode_binary","path":"xcode_binary"}
@@ -96,7 +96,7 @@
             {"name":"chrome_and_driver_96","path":"chrome"},
             {"name":"flutter_sdk","path":"flutter sdk"},
             {"name":"gradle","path":"gradle"},
-            {"name":"openjdk_11","path":"java"},
+            {"name":"openjdk","path":"java11"},
             {"name":"pub_cache","path":".pub-cache"}
           ]
       dependencies: >-
@@ -115,7 +115,7 @@
             {"name":"chrome_and_driver_96","path":"chrome"},
             {"name":"flutter_sdk","path":"flutter sdk"},
             {"name":"gradle","path":"gradle"},
-            {"name":"openjdk_11","path":"java"},
+            {"name":"openjdk","path":"java11"},
             {"name":"pub_cache","path":".pub-cache"},
             {"name":"xcode_binary","path":"xcode_binary"},
             {"name":"osx_sdk_13a233","path":"osx_sdk"}
@@ -137,7 +137,7 @@
             {"name":"android_sdk","path":"android"},
             {"name":"chrome_and_driver_96","path":"chrome"},
             {"name":"flutter_sdk","path":"flutter sdk"},
-            {"name":"openjdk_11","path":"java"},
+            {"name":"openjdk","path":"java11"},
             {"name":"pub_cache","path":".pub-cache"},
             {"name":"vsbuild","path":"vsbuild"}
           ]
@@ -156,7 +156,7 @@
             {"name":"chrome_and_driver_96","path":"chrome"},
             {"name":"flutter_sdk","path":"flutter sdk"},
             {"name":"gradle","path":"gradle"},
-            {"name":"openjdk_11","path":"java"},
+            {"name":"openjdk","path":"java11"},
             {"name":"pub_cache","path":".pub-cache"}
           ]
       dependencies: >-
@@ -188,13 +188,13 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java"}
         ]
       dependencies: >-
         [
           {"dependency": "android_sdk", "version": "version:31v8"},
           {"dependency": "chrome_and_driver", "version": "version:96.2"},
-          {"dependency": "open_jdk", "version": "11"}
+          {"dependency": "open_jdk"}
         ]
       tags: >
         ["devicelab","hostonly"]
@@ -460,7 +460,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -484,7 +484,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -508,7 +508,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -532,7 +532,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -556,7 +556,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -580,7 +580,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -628,7 +628,7 @@
       caches: >-
         [
           {"name":"gradle", "path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -653,7 +653,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -678,7 +678,7 @@
       caches: >-
         [
           {"name":"gradle", "path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -1549,7 +1549,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -1567,7 +1567,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -1585,7 +1585,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -1603,7 +1603,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -1621,7 +1621,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -1639,7 +1639,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -1657,7 +1657,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -1675,7 +1675,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -2274,7 +2274,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -2434,12 +2434,12 @@
       caches: >-
         [
           {"name":"gradle", "path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java"}
         ]
       dependencies: >-
         [
           {"dependency": "android_sdk", "version": "version:31v8"},
-          {"dependency": "open_jdk", "version": "11"}
+          {"dependency": "open_jdk"}
         ]
       tags: >
         ["devicelab","hostonly"]
@@ -2723,7 +2723,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -2770,7 +2770,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -2794,7 +2794,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -2820,7 +2820,7 @@
       caches: >-
         [
           {"name":"gradle", "path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -3234,7 +3234,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -3252,7 +3252,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -3270,7 +3270,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
@@ -3687,13 +3687,13 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java"}
         ]
       dependencies: >-
         [
           {"dependency": "android_sdk", "version": "version:31v8"},
           {"dependency": "chrome_and_driver", "version": "version:96.2"},
-          {"dependency": "open_jdk", "version": "11"}
+          {"dependency": "open_jdk"}
         ]
       tags: >
         ["devicelab","hostonly"]
@@ -3928,7 +3928,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       tags: >
         ["devicelab","hostonly"]
@@ -3971,7 +3971,7 @@
       caches: >-
         [
           {"name":"gradle", "path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -3996,7 +3996,7 @@
       caches: >-
         [
           {"name":"gradle","path":"gradle"},
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
       dependencies: >-
         [
@@ -4299,7 +4299,7 @@
         ]
       caches: >-
         [
-          {"name": "openjdk_11", "path": "java"}
+          {"name": "openjdk", "path": "java11"}
         ]
     scheduler: luci
 
diff --git a/AUTHORS b/AUTHORS
index a3fcb82..4ec4dab 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -93,4 +93,3 @@
 Twin Sun, LLC <google-contrib@twinsunsolutions.com>
 Taskulu LDA <contributions@taskulu.com>
 Jonathan Joelson <jon@joelson.co>
-Elsabe Ros <hello@elsabe.dev>
diff --git a/dev/devicelab/bin/tasks/android_obfuscate_test.dart b/dev/devicelab/bin/tasks/android_obfuscate_test.dart
index 15c372c..6676a0d 100644
--- a/dev/devicelab/bin/tasks/android_obfuscate_test.dart
+++ b/dev/devicelab/bin/tasks/android_obfuscate_test.dart
@@ -67,45 +67,21 @@
           ]);
         });
 
-        final String outputAarDirectoryOld = path.join(
+        final String outputAarDirectory = path.join(
           flutterProject.rootPath,
           'build/host/outputs/repo/com/example/${flutterProject.name}/flutter_release/1.0/flutter_release-1.0.aar',
         );
-        final Iterable<String> oldAarFiles = await getFilesInAar(outputAarDirectoryOld);
+        final Iterable<String> aarFiles = await getFilesInAar(outputAarDirectory);
 
         checkCollectionContains<String>(<String>[
           ...flutterAssets,
           'jni/armeabi-v7a/libapp.so',
-        ], oldAarFiles);
-
-        final String outputAarDirectoryNew = path.join(
-          flutterProject.rootPath,
-          'build/host/outputs/repo/com/example/${flutterProject.name}/flutter/1.0/flutter-1.0-release.aar',
-        );
-        final Iterable<String> newAarFiles = await getFilesInAar(outputAarDirectoryNew);
-
-        checkCollectionContains<String>(<String>[
-          ...flutterAssets,
-          'jni/armeabi-v7a/libapp.so',
-        ], newAarFiles);
+        ], aarFiles);
 
         // Verify that an identifier from the Dart project code is not present
         // in the compiled binary.
         await inDirectory(flutterProject.rootPath, () async {
-          await exec('unzip', <String>[outputAarDirectoryOld]);
-          checkFileExists(path.join(flutterProject.rootPath, 'jni/armeabi-v7a/libapp.so'));
-          final String response = await eval(
-            'grep',
-            <String>[flutterProject.name, 'jni/armeabi-v7a/libapp.so'],
-            canFail: true,
-          );
-          if (response.trim().contains('matches')) {
-            foundAarProjectName = true;
-          }
-        });
-
-        await inDirectory(flutterProject.rootPath, () async {
-          await exec('unzip', <String>[outputAarDirectoryNew]);
+          await exec('unzip', <String>[outputAarDirectory]);
           checkFileExists(path.join(flutterProject.rootPath, 'jni/armeabi-v7a/libapp.so'));
           final String response = await eval(
             'grep',
diff --git a/dev/devicelab/bin/tasks/build_aar_module_test.dart b/dev/devicelab/bin/tasks/build_aar_module_test.dart
index ad8b9bb..0d47b4b 100644
--- a/dev/devicelab/bin/tasks/build_aar_module_test.dart
+++ b/dev/devicelab/bin/tasks/build_aar_module_test.dart
@@ -98,7 +98,7 @@
         'repo',
       );
 
-      section('Check release Maven artifacts (old format)');
+      section('Check release Maven artifacts');
 
       checkFileExists(path.join(
         repoPath,
@@ -111,7 +111,7 @@
         'flutter_release-1.0.aar',
       ));
 
-      final String releasePomOld = path.join(
+      final String releasePom = path.join(
         repoPath,
         'io',
         'flutter',
@@ -122,7 +122,7 @@
         'flutter_release-1.0.pom',
       );
 
-      checkFileExists(releasePomOld);
+      checkFileExists(releasePom);
 
       checkFileExists(path.join(
         repoPath,
@@ -146,54 +146,6 @@
         'plugin_with_android_release-1.0.pom',
       ));
 
-      section('Check release Maven artifacts (new format)');
-
-      checkFileExists(path.join(
-        repoPath,
-        'io',
-        'flutter',
-        'devicelab',
-        'hello',
-        'flutter',
-        '1.0',
-        'flutter-1.0-release.aar',
-      ));
-
-      final String releasePomNew = path.join(
-        repoPath,
-        'io',
-        'flutter',
-        'devicelab',
-        'hello',
-        'flutter',
-        '1.0',
-        'flutter-1.0.pom',
-      );
-
-      checkFileExists(releasePomNew);
-
-      checkFileExists(path.join(
-        repoPath,
-        'io',
-        'flutter',
-        'devicelab',
-        'plugin_with_android',
-        'plugin_with_android',
-        '1.0',
-        'plugin_with_android-1.0-release.aar',
-      ));
-
-      checkFileExists(path.join(
-        repoPath,
-        'io',
-        'flutter',
-        'devicelab',
-        'plugin_with_android',
-        'plugin_with_android',
-        '1.0',
-        'plugin_with_android-1.0.pom',
-      ));
-
       section('Check AOT blobs in release POM');
 
       checkFileContains(<String>[
@@ -201,17 +153,8 @@
         'armeabi_v7a_release',
         'arm64_v8a_release',
         'x86_64_release',
-        'plugin_with_android',
-        '<relocation>', //make sure the old pom contains the <relocation> tag
-      ], releasePomOld);
-
-      checkFileContains(<String>[
-        'flutter_embedding_release',
-        'armeabi_v7a_release',
-        'arm64_v8a_release',
-        'x86_64_release',
-        'plugin_with_android',
-      ], releasePomNew);
+        'plugin_with_android_release',
+      ], releasePom);
 
       section('Check assets in release AAR');
 
@@ -237,29 +180,7 @@
         )
       );
 
-      checkCollectionContains<String>(
-          <String>[
-            ...flutterAssets,
-            // AOT snapshots
-            'jni/arm64-v8a/libapp.so',
-            'jni/armeabi-v7a/libapp.so',
-            'jni/x86_64/libapp.so',
-          ],
-          await getFilesInAar(
-              path.join(
-                repoPath,
-                'io',
-                'flutter',
-                'devicelab',
-                'hello',
-                'flutter',
-                '1.0',
-                'flutter-1.0-release.aar',
-              )
-          )
-      );
-
-      section('Check debug Maven artifacts (old format)');
+      section('Check debug Maven artifacts');
 
       checkFileExists(path.join(
         repoPath,
@@ -272,7 +193,7 @@
         'flutter_debug-1.0.aar',
       ));
 
-      final String debugPomOld = path.join(
+      final String debugPom = path.join(
         repoPath,
         'io',
         'flutter',
@@ -283,7 +204,7 @@
         'flutter_debug-1.0.pom',
       );
 
-      checkFileExists(debugPomOld);
+      checkFileExists(debugPom);
 
       checkFileExists(path.join(
         repoPath,
@@ -307,54 +228,6 @@
         'plugin_with_android_debug-1.0.pom',
       ));
 
-      section('Check debug Maven artifacts (new format)');
-
-      checkFileExists(path.join(
-        repoPath,
-        'io',
-        'flutter',
-        'devicelab',
-        'hello',
-        'flutter',
-        '1.0',
-        'flutter-1.0-debug.aar',
-      ));
-
-      final String debugPomNew = path.join(
-        repoPath,
-        'io',
-        'flutter',
-        'devicelab',
-        'hello',
-        'flutter',
-        '1.0',
-        'flutter-1.0.pom',
-      );
-
-      checkFileExists(debugPomNew);
-
-      checkFileExists(path.join(
-        repoPath,
-        'io',
-        'flutter',
-        'devicelab',
-        'plugin_with_android',
-        'plugin_with_android',
-        '1.0',
-        'plugin_with_android-1.0-debug.aar',
-      ));
-
-      checkFileExists(path.join(
-        repoPath,
-        'io',
-        'flutter',
-        'devicelab',
-        'plugin_with_android',
-        'plugin_with_android',
-        '1.0',
-        'plugin_with_android-1.0.pom',
-      ));
-
       section('Check AOT blobs in debug POM');
 
       checkFileContains(<String>[
@@ -363,18 +236,8 @@
         'x86_64_debug',
         'armeabi_v7a_debug',
         'arm64_v8a_debug',
-        'plugin_with_android',
-        '<relocation>', //make sure the old pom contains the <relocation> tag
-      ], debugPomOld);
-
-      checkFileContains(<String>[
-        'flutter_embedding_debug',
-        'x86_debug',
-        'x86_64_debug',
-        'armeabi_v7a_debug',
-        'arm64_v8a_debug',
-        'plugin_with_android',
-      ], debugPomNew);
+        'plugin_with_android_debug',
+      ], debugPom);
 
       section('Check assets in debug AAR');
 
@@ -389,27 +252,11 @@
         'flutter_debug-1.0.aar',
       ));
 
-      final Iterable<String> debugAarNew = await getFilesInAar(path.join(
-        repoPath,
-        'io',
-        'flutter',
-        'devicelab',
-        'hello',
-        'flutter',
-        '1.0',
-        'flutter-1.0-debug.aar',
-      ));
-
       checkCollectionContains<String>(<String>[
         ...flutterAssets,
         ...debugAssets,
       ], debugAar);
 
-      checkCollectionContains<String>(<String>[
-        ...flutterAssets,
-        ...debugAssets,
-      ], debugAarNew);
-
       return TaskResult.success(null);
     } on TaskResult catch (taskResult) {
       return taskResult;
diff --git a/packages/flutter_tools/gradle/aar_init_script.gradle b/packages/flutter_tools/gradle/aar_init_script.gradle
index c4bf065..e133e45 100644
--- a/packages/flutter_tools/gradle/aar_init_script.gradle
+++ b/packages/flutter_tools/gradle/aar_init_script.gradle
@@ -6,7 +6,9 @@
 import java.nio.file.Paths
 import org.gradle.api.Project
 import org.gradle.api.artifacts.Configuration
-import org.gradle.api.publish.maven.MavenPublication
+import org.gradle.api.artifacts.maven.MavenDeployer
+import org.gradle.api.plugins.MavenPlugin
+import org.gradle.api.tasks.Upload
 
 void configureProject(Project project, String outputDir) {
     if (!project.hasProperty("android")) {
@@ -16,6 +18,8 @@
         throw new GradleException("Can't generate AAR on a non Android library project.");
     }
 
+    project.apply plugin: "maven"
+
     // Snapshot versions include the timestamp in the artifact name.
     // Therefore, remove the snapshot part, so new runs of `flutter build aar` overrides existing artifacts.
     // This version isn't relevant in Flutter since the pub version is used
@@ -30,51 +34,13 @@
         addAarTask(project, variant)
     }
 
-    project.publishing {
+    project.uploadArchives {
         repositories {
-            maven {
-                url = uri("file://${outputDir}/outputs/repo")
+            mavenDeployer {
+                repository(url: "file://${outputDir}/outputs/repo")
             }
         }
     }
-
-    // Some extra work to have alternative publications with the same format as the old maven plugin.
-    // Instead of using classifiers for the variants, the old maven plugin appended `_{variant}` to the artifactId
-
-    // First, create a default MavenPublication for each variant (except "all" since that is used to publish artifacts in the new way)
-    project.components.forEach { component ->
-        if (component.name != "all") {
-            project.publishing.publications.create(component.name, MavenPublication) {
-                from component
-            }
-        }
-    }
-
-    // then, rename the artifactId to include the variant and make sure to remove any classifier
-    // data tha gradle has set, as well as adding a <relocation> tag pointing to the new coordinates
-    project.publishing.publications.forEach { pub ->
-        def relocationArtifactId = pub.artifactId
-        pub.artifactId = "${relocationArtifactId}_${pub.name}"
-        pub.alias = true
-
-        pub.pom.distributionManagement {
-            relocation {
-                // New artifact coordinates
-                groupId = "${pub.groupId}"
-                artifactId = "${relocationArtifactId}"
-                version = "${pub.version}"
-                message = "Use classifiers rather than _variant for new publish plugin"
-            }
-        }
-
-    }
-
-    // also publish the artifacts in the new way, using one set of coordinates with classifiers
-    project.publishing.publications.create("all", MavenPublication) {
-        from project.components.all
-        alias false
-    }
-
     if (!project.property("is-plugin").toBoolean()) {
         return
     }
@@ -118,21 +84,55 @@
     String variantName = variant.name.capitalize()
     String taskName = "assembleAar$variantName"
     project.tasks.create(name: taskName) {
-        // This check is required to be able to configure the archives before `publish` runs.
+        // This check is required to be able to configure the archives before `uploadArchives` runs.
         if (!project.gradle.startParameter.taskNames.contains(taskName)) {
             return
         }
+        project.uploadArchives.repositories.mavenDeployer {
+            pom {
+                artifactId = "${project.name}_${variant.name.toLowerCase()}"
+            }
+        }
+        overrideDefaultPublishConfig(project, variant)
         // Generate the Maven artifacts.
-        finalizedBy "publish"
+        finalizedBy "uploadArchives"
     }
 }
 
-// maven-publish has to be applied _before_ the project gets evaluated, but some of the code in
-// `configureProject` requires the project to be evaluated. Apply the maven plugin to all projects, but
-// only configure it if it matches the conditions in `projectsEvaluated`
+// This method mimics the logic in AGP when `android.defaultPublishConfig` is set in `build.gradle`:
+// https://android.googlesource.com/platform/tools/base/+/studio-master-dev/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/variant/VariantHelper.java
+//
+// Unfortunately, `android.defaultPublishConfig` cannot be overridden at this point since
+// AGP already run this code.
+void overrideDefaultPublishConfig(Project project, variant) {
+    String variantName = variant.name.capitalize()
+    Task bundle = project.tasks.findByName("bundle${variantName}Aar") // gradle:3.2.0
+    if (bundle == null) {
+        bundle = project.tasks.findByName("bundle${variantName}") // gradle:3.1.0
+    }
+    if (bundle == null) {
+        throw new GradleException("Can't generate AAR for variant ${variantName}.");
+    }
+    // Clear the current archive artifacts since the artifacts are based on `android.defaultPublishConfig`.
+    project.configurations["archives"].artifacts.clear()
+    // Add the artifact that will be published.
+    project.artifacts.add("archives", bundle)
 
-allprojects {
-   apply plugin: "maven-publish"
+    def scopeMappings = project.uploadArchives.repositories.mavenDeployer.pom.scopeMappings
+    // Clear the scope mappings added by AGP since they are based on the current `android.defaultPublishConfig`.
+    scopeMappings.mappings.clear()
+    // Add the new mappings.
+    for (Configuration configuration : flattenConfiguration(variant.runtimeConfiguration)) {
+        scopeMappings.addMapping(/* priority = */ 300, configuration, "compile")
+    }
+}
+
+Set<Configuration> flattenConfiguration(Configuration configuration) {
+    Set<Configuration> configs = [configuration]
+    for (Configuration extend : configuration.extendsFrom) {
+        configs.addAll(flattenConfiguration(extend))
+    }
+    return configs
 }
 
 projectsEvaluated {
diff --git a/packages/flutter_tools/lib/src/android/gradle.dart b/packages/flutter_tools/lib/src/android/gradle.dart
index 19948c5..58276f1 100644
--- a/packages/flutter_tools/lib/src/android/gradle.dart
+++ b/packages/flutter_tools/lib/src/android/gradle.dart
@@ -726,7 +726,7 @@
 
   for (final String buildMode in buildModes) {
     logger.printStatus("""
-      ${buildMode}Implementation '$androidPackage:flutter:$buildNumber:$buildMode'""");
+      ${buildMode}Implementation '$androidPackage:flutter_$buildMode:$buildNumber'""");
   }
 
   logger.printStatus('''
diff --git a/packages/flutter_tools/lib/src/android/gradle_utils.dart b/packages/flutter_tools/lib/src/android/gradle_utils.dart
index 2204ee4..4859fb6 100644
--- a/packages/flutter_tools/lib/src/android/gradle_utils.dart
+++ b/packages/flutter_tools/lib/src/android/gradle_utils.dart
@@ -29,7 +29,8 @@
 // https://kotlinlang.org/docs/gradle.html#plugin-and-versions
 const String templateDefaultGradleVersion = '7.4';
 const String templateAndroidGradlePluginVersion = '7.1.2';
-const String templateDefaultGradleVersionForModule = '7.1.2';
+// TODO(egarciad): Gradle 7 breaks AARs builds: https://github.com/flutter/flutter/issues/101083
+const String templateDefaultGradleVersionForModule = '4.1.0';
 const String templateKotlinGradlePluginVersion = '1.6.10';
 
 // These versions should match the values in flutter.gradle (FlutterExtension).
diff --git a/packages/flutter_tools/test/general.shard/android/gradle_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_test.dart
index 75b1e6c..034421a 100644
--- a/packages/flutter_tools/test/general.shard/android/gradle_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/gradle_test.dart
@@ -543,9 +543,9 @@
           '  3. Make the host app depend on the Flutter module:\n'
           '\n'
           '    dependencies {\n'
-          "      releaseImplementation 'com.mycompany:flutter:2.2:release'\n"
-          "      debugImplementation 'com.mycompany:flutter:2.2:debug'\n"
-          "      profileImplementation 'com.mycompany:flutter:2.2:profile'\n"
+          "      releaseImplementation 'com.mycompany:flutter_release:2.2'\n"
+          "      debugImplementation 'com.mycompany:flutter_debug:2.2'\n"
+          "      profileImplementation 'com.mycompany:flutter_profile:2.2'\n"
           '    }\n'
           '\n'
           '\n'
@@ -594,7 +594,7 @@
           '  3. Make the host app depend on the Flutter module:\n'
           '\n'
           '    dependencies {\n'
-          "      releaseImplementation 'com.mycompany:flutter:1.0:release'\n"
+          "      releaseImplementation 'com.mycompany:flutter_release:1.0'\n"
           '    }\n'
           '\n'
           'To learn more, visit https://flutter.dev/go/build-aar\n'
@@ -632,7 +632,7 @@
           '  3. Make the host app depend on the Flutter module:\n'
           '\n'
           '    dependencies {\n'
-          "      debugImplementation 'com.mycompany:flutter:1.0:debug'\n"
+          "      debugImplementation 'com.mycompany:flutter_debug:1.0'\n"
           '    }\n'
           '\n'
           'To learn more, visit https://flutter.dev/go/build-aar\n'
@@ -671,7 +671,7 @@
           '  3. Make the host app depend on the Flutter module:\n'
           '\n'
           '    dependencies {\n'
-          "      profileImplementation 'com.mycompany:flutter:1.0:profile'\n"
+          "      profileImplementation 'com.mycompany:flutter_profile:1.0'\n"
           '    }\n'
           '\n'
           '\n'