diff --git a/lib/manager/gradle-lite/extract.ts b/lib/manager/gradle-lite/extract.ts
index cab54c04aa7d806defe9c5210b81518b7f5f5553..de218363413cdf7bc793c0345af92ce635f85bb3 100644
--- a/lib/manager/gradle-lite/extract.ts
+++ b/lib/manager/gradle-lite/extract.ts
@@ -13,6 +13,21 @@ import {
   toAbsolutePath,
 } from './utils';
 
+// Enables reverse sorting in generateBranchConfig()
+//
+// Required for grouped dependencies to be upgraded
+// correctly in single branch.
+//
+// https://github.com/renovatebot/renovate/issues/8224
+function elevateFileReplacePositionField(
+  deps: PackageDependency<ManagerData>[]
+): PackageDependency<ManagerData>[] {
+  return deps.map((dep) => ({
+    ...dep,
+    fileReplacePosition: dep?.managerData?.fileReplacePosition,
+  }));
+}
+
 export async function extractAllPackageFiles(
   config: ExtractConfig,
   packageFiles: string[]
@@ -57,7 +72,7 @@ export async function extractAllPackageFiles(
     return null;
   }
 
-  extractedDeps.forEach((dep) => {
+  elevateFileReplacePositionField(extractedDeps).forEach((dep) => {
     const key = dep.managerData.packageFile;
     const pkgFile: PackageFile = packageFilesByName[key];
     const { deps } = pkgFile;