diff --git a/app-toolkit/core-testing/build.gradle b/app-toolkit/core-testing/build.gradle
index 90fbb28..5aa8994 100644
--- a/app-toolkit/core-testing/build.gradle
+++ b/app-toolkit/core-testing/build.gradle
@@ -49,14 +49,7 @@
     compile libs.mockito.all
 }
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url: rootProject.ext.localMavenRepo)
-            pom.artifactId = "core-testing"
-        }
-    }
-}
+archivesBaseName = "core-testing"
 
 createAndroidCheckstyle(project)
 
diff --git a/app-toolkit/core/build.gradle b/app-toolkit/core/build.gradle
index a1ae148..d32048c 100644
--- a/app-toolkit/core/build.gradle
+++ b/app-toolkit/core/build.gradle
@@ -56,14 +56,7 @@
     }
 }
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url: rootProject.ext.localMavenRepo)
-            pom.artifactId = "apptoolkit-core"
-        }
-    }
-}
+archivesBaseName = "core"
 
 createAndroidCheckstyle(project)
 
diff --git a/app-toolkit/init.gradle b/app-toolkit/init.gradle
index 926131d..8e68b50 100644
--- a/app-toolkit/init.gradle
+++ b/app-toolkit/init.gradle
@@ -73,14 +73,6 @@
 def buildServerAnchorTask = rootProject.tasks.create(name : "runBuildServerCompilationTasks",
     description: "Anchor task for everything we want to run in build server.")
 
-// flatfoot and its dependencies only repo. does not include history
-def createFFDistTask = rootProject.tasks.create(name : "createFlatfootArchive", type: Zip) {
-    from localMavenRepo
-    destinationDir distDir
-    into 'appToolkitRepository'
-    baseName = String.format("flatfoot-repository-%s", rootProject.ext.flatfoot.release_version)
-}
-
 if (ext.inAppToolkitProject) {
     init.addMavenRepositories(repositories)
     init.setupRepoOutAndBuildNumber()
@@ -105,7 +97,6 @@
 checkApi.enabled = false
 
 buildServerAnchorTask.dependsOn createArchive
-buildServerAnchorTask.dependsOn createFFDistTask
 
 subprojects {
     configurations.all {
@@ -122,17 +113,7 @@
         }
         return
     }
-    project.tasks.whenTaskAdded { task ->
-        if (task.name.startsWith("uploadArchives")) {
-            createFFDistTask.dependsOn task
-            task.doLast {
-                copy {
-                    from(task.outputs)
-                    into(localMavenRepo)
-                }
-            }
-        }
-    }
+
     def mavenGroup = project.getPath().split(":")[1]
     if (mavenGroup != "room" && mavenGroup != "lifecycle" && mavenGroup != "apptoolkit-core") {
         return
diff --git a/lifecycle/common/build.gradle b/lifecycle/common/build.gradle
index 6d63347..ac9b2e2f 100644
--- a/lifecycle/common/build.gradle
+++ b/lifecycle/common/build.gradle
@@ -9,13 +9,6 @@
     compile libs.support.annotations
 }
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url : rootProject.ext.localMavenRepo)
-            pom.artifactId = "common"
-        }
-    }
-}
+archivesBaseName = "common"
 
 createAndroidCheckstyle(project)
diff --git a/lifecycle/compiler/build.gradle b/lifecycle/compiler/build.gradle
index ee1e9fa..628204e 100644
--- a/lifecycle/compiler/build.gradle
+++ b/lifecycle/compiler/build.gradle
@@ -15,13 +15,6 @@
     testCompile files(org.gradle.internal.jvm.Jvm.current().getToolsJar())
 }
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url: rootProject.ext.localMavenRepo)
-            pom.artifactId = 'compiler'
-        }
-    }
-}
+archivesBaseName = "compiler"
 
 createKotlinCheckstyle(project)
diff --git a/lifecycle/extensions/build.gradle b/lifecycle/extensions/build.gradle
index 2066969..ce5a17b 100644
--- a/lifecycle/extensions/build.gradle
+++ b/lifecycle/extensions/build.gradle
@@ -48,11 +48,4 @@
 
 createAndroidCheckstyle(project)
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url : rootProject.ext.localMavenRepo)
-            pom.artifactId = "extensions"
-        }
-    }
-}
+archivesBaseName = "extensions"
diff --git a/lifecycle/reactivestreams/build.gradle b/lifecycle/reactivestreams/build.gradle
index c083cec..4c003da 100644
--- a/lifecycle/reactivestreams/build.gradle
+++ b/lifecycle/reactivestreams/build.gradle
@@ -64,11 +64,4 @@
 
 createAndroidCheckstyle(project)
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url : rootProject.ext.localMavenRepo)
-            pom.artifactId = "reactivestreams"
-        }
-    }
-}
+archivesBaseName = "reactivestreams"
diff --git a/lifecycle/runtime/build.gradle b/lifecycle/runtime/build.gradle
index 0f74c9e..62c4b8d 100644
--- a/lifecycle/runtime/build.gradle
+++ b/lifecycle/runtime/build.gradle
@@ -53,11 +53,4 @@
 
 createAndroidCheckstyle(project)
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url: rootProject.ext.localMavenRepo)
-            pom.artifactId = "runtime"
-        }
-    }
-}
+archivesBaseName = "runtime"
diff --git a/room/common/build.gradle b/room/common/build.gradle
index 2050327..5b0d53d 100644
--- a/room/common/build.gradle
+++ b/room/common/build.gradle
@@ -25,13 +25,6 @@
     testCompile libs.mockito_core
 }
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url: rootProject.ext.localMavenRepo)
-            pom.artifactId = "common"
-        }
-    }
-}
+archivesBaseName = "common"
 
 createAndroidCheckstyle(project)
diff --git a/room/compiler/build.gradle b/room/compiler/build.gradle
index a3cab58..27492f4 100644
--- a/room/compiler/build.gradle
+++ b/room/compiler/build.gradle
@@ -49,14 +49,7 @@
     testCompile files(org.gradle.internal.jvm.Jvm.current().getToolsJar())
 }
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url: rootProject.ext.localMavenRepo)
-            pom.artifactId = 'compiler'
-        }
-    }
-}
+archivesBaseName = "compiler"
 
 def generateAntlrTask = task('generateAntlrGrammar', type: JavaExec) {
     def outFolder = file(antlrOut)
diff --git a/room/db-impl/build.gradle b/room/db-impl/build.gradle
index 91e969e..978681d 100644
--- a/room/db-impl/build.gradle
+++ b/room/db-impl/build.gradle
@@ -46,14 +46,7 @@
     }
 }
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url: rootProject.ext.localMavenRepo)
-            pom.artifactId = "support-db-impl"
-        }
-    }
-}
+archivesBaseName = "support-db-impl"
 
 dependencies {
     compile libs.support.annotations
diff --git a/room/db/build.gradle b/room/db/build.gradle
index de0f1f5..d495bb8 100644
--- a/room/db/build.gradle
+++ b/room/db/build.gradle
@@ -46,14 +46,7 @@
     }
 }
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url: rootProject.ext.localMavenRepo)
-            pom.artifactId = "support-db"
-        }
-    }
-}
+archivesBaseName = "support-db"
 
 dependencies {
     compile libs.support.annotations
diff --git a/room/runtime/build.gradle b/room/runtime/build.gradle
index 59ecc05..13882fc 100644
--- a/room/runtime/build.gradle
+++ b/room/runtime/build.gradle
@@ -58,14 +58,7 @@
     testCompile libs.mockito.all
 }
 
-uploadArchives {
-    repositories {
-        mavenDeployer {
-            repository(url: rootProject.ext.localMavenRepo)
-            pom.artifactId = "runtime"
-        }
-    }
-}
+archivesBaseName = "runtime"
 
 createAndroidCheckstyle(project)
 
