diff --git a/build.gradle b/build.gradle
index f825010..fba205d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -90,6 +90,12 @@
         }
         output.resourcesDir = 'build/classes/cfSegments'
     }
+    libraryDesugarConversions {
+        java {
+            srcDirs = ['src/library_desugar/java']
+        }
+        output.resourcesDir = 'build/classes/library_desugar_conversions'
+    }
     debugTestResources {
         java {
             srcDirs = ['src/test/debugTestResources']
@@ -852,7 +858,14 @@
     }
 }
 
-task testJar(type: ShadowJar, dependsOn: testClasses) {
+task buildLibraryDesugarConversions(type: Zip, dependsOn: downloadDeps) {
+    from sourceSets.libraryDesugarConversions.output
+    include "java/**/*.class"
+    baseName 'library_desugar_conversions'
+    destinationDir file('build/libs')
+}
+
+task testJar(type: ShadowJar, dependsOn: [testClasses, buildLibraryDesugarConversions]) {
     baseName = "r8tests"
     from sourceSets.test.output
     // We only want to include tests that use R8 when generating keep rules for applymapping.
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/desugar_jdk_libs.json b/src/library_desugar/desugar_jdk_libs.json
similarity index 100%
rename from src/test/java/com/android/tools/r8/desugar/desugaredlibrary/desugar_jdk_libs.json
rename to src/library_desugar/desugar_jdk_libs.json
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/desugar_jdk_libs_comments.md b/src/library_desugar/desugar_jdk_libs_comments.md
similarity index 100%
rename from src/test/java/com/android/tools/r8/desugar/desugaredlibrary/desugar_jdk_libs_comments.md
rename to src/library_desugar/desugar_jdk_libs_comments.md
diff --git a/src/test/desugaredLibrary/stubs/timestubs/Duration.java b/src/library_desugar/java/j$/time/Duration.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/timestubs/Duration.java
rename to src/library_desugar/java/j$/time/Duration.java
diff --git a/src/test/desugaredLibrary/stubs/timestubs/Instant.java b/src/library_desugar/java/j$/time/Instant.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/timestubs/Instant.java
rename to src/library_desugar/java/j$/time/Instant.java
diff --git a/src/test/desugaredLibrary/stubs/timestubs/LocalDate.java b/src/library_desugar/java/j$/time/LocalDate.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/timestubs/LocalDate.java
rename to src/library_desugar/java/j$/time/LocalDate.java
diff --git a/src/test/desugaredLibrary/stubs/timestubs/MonthDay.java b/src/library_desugar/java/j$/time/MonthDay.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/timestubs/MonthDay.java
rename to src/library_desugar/java/j$/time/MonthDay.java
diff --git a/src/test/desugaredLibrary/stubs/timestubs/ZoneId.java b/src/library_desugar/java/j$/time/ZoneId.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/timestubs/ZoneId.java
rename to src/library_desugar/java/j$/time/ZoneId.java
diff --git a/src/test/desugaredLibrary/stubs/timestubs/ZonedDateTime.java b/src/library_desugar/java/j$/time/ZonedDateTime.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/timestubs/ZonedDateTime.java
rename to src/library_desugar/java/j$/time/ZonedDateTime.java
diff --git a/src/test/desugaredLibrary/stubs/optionalstubs/Optional.java b/src/library_desugar/java/j$/util/optionalstubs/Optional.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/optionalstubs/Optional.java
rename to src/library_desugar/java/j$/util/optionalstubs/Optional.java
diff --git a/src/test/desugaredLibrary/stubs/optionalstubs/OptionalDouble.java b/src/library_desugar/java/j$/util/optionalstubs/OptionalDouble.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/optionalstubs/OptionalDouble.java
rename to src/library_desugar/java/j$/util/optionalstubs/OptionalDouble.java
diff --git a/src/test/desugaredLibrary/stubs/optionalstubs/OptionalInt.java b/src/library_desugar/java/j$/util/optionalstubs/OptionalInt.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/optionalstubs/OptionalInt.java
rename to src/library_desugar/java/j$/util/optionalstubs/OptionalInt.java
diff --git a/src/test/desugaredLibrary/stubs/optionalstubs/OptionalLong.java b/src/library_desugar/java/j$/util/optionalstubs/OptionalLong.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/optionalstubs/OptionalLong.java
rename to src/library_desugar/java/j$/util/optionalstubs/OptionalLong.java
diff --git a/src/test/desugaredLibrary/stubs/summarystatisticsstubs/DoubleSummaryStatistics.java b/src/library_desugar/java/j$/util/summarystatisticsstubs/DoubleSummaryStatistics.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/summarystatisticsstubs/DoubleSummaryStatistics.java
rename to src/library_desugar/java/j$/util/summarystatisticsstubs/DoubleSummaryStatistics.java
diff --git a/src/test/desugaredLibrary/stubs/summarystatisticsstubs/IntSummaryStatistics.java b/src/library_desugar/java/j$/util/summarystatisticsstubs/IntSummaryStatistics.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/summarystatisticsstubs/IntSummaryStatistics.java
rename to src/library_desugar/java/j$/util/summarystatisticsstubs/IntSummaryStatistics.java
diff --git a/src/test/desugaredLibrary/stubs/summarystatisticsstubs/LongSummaryStatistics.java b/src/library_desugar/java/j$/util/summarystatisticsstubs/LongSummaryStatistics.java
similarity index 100%
rename from src/test/desugaredLibrary/stubs/summarystatisticsstubs/LongSummaryStatistics.java
rename to src/library_desugar/java/j$/util/summarystatisticsstubs/LongSummaryStatistics.java
diff --git a/src/test/desugaredLibrary/conversions/TimeConversions.java b/src/library_desugar/java/java/time/TimeConversions.java
similarity index 100%
rename from src/test/desugaredLibrary/conversions/TimeConversions.java
rename to src/library_desugar/java/java/time/TimeConversions.java
diff --git a/src/test/desugaredLibrary/conversions/DoubleSummaryStatisticsConversions.java b/src/library_desugar/java/java/util/DoubleSummaryStatisticsConversions.java
similarity index 100%
rename from src/test/desugaredLibrary/conversions/DoubleSummaryStatisticsConversions.java
rename to src/library_desugar/java/java/util/DoubleSummaryStatisticsConversions.java
diff --git a/src/test/desugaredLibrary/conversions/IntSummaryStatisticsConversions.java b/src/library_desugar/java/java/util/IntSummaryStatisticsConversions.java
similarity index 100%
rename from src/test/desugaredLibrary/conversions/IntSummaryStatisticsConversions.java
rename to src/library_desugar/java/java/util/IntSummaryStatisticsConversions.java
diff --git a/src/test/desugaredLibrary/conversions/LongSummaryStatisticsConversions.java b/src/library_desugar/java/java/util/LongSummaryStatisticsConversions.java
similarity index 100%
rename from src/test/desugaredLibrary/conversions/LongSummaryStatisticsConversions.java
rename to src/library_desugar/java/java/util/LongSummaryStatisticsConversions.java
diff --git a/src/test/desugaredLibrary/conversions/OptionalConversions.java b/src/library_desugar/java/java/util/OptionalConversions.java
similarity index 100%
rename from src/test/desugaredLibrary/conversions/OptionalConversions.java
rename to src/library_desugar/java/java/util/OptionalConversions.java
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 51d0276..c0a5ee0 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -167,9 +167,10 @@
       Paths.get(LIBS_DIR, "r8lib-exclude-deps.jar.map");
   public static final Path DEPS_NOT_RELOCATED = Paths.get(LIBS_DIR, "deps-not-relocated.jar");
 
+  public static final Path DESUGAR_LIB_CONVERSIONS =
+      Paths.get(LIBS_DIR, "library_desugar_conversions.zip");
   public static final Path DESUGAR_LIB_JSON_FOR_TESTING =
-      Paths.get(
-          "src/test/java/com/android/tools/r8/desugar/desugaredlibrary/desugar_jdk_libs.json");
+      Paths.get("src/library_desugar/desugar_jdk_libs.json");
 
   public static boolean isLocalDevelopment() {
     return System.getProperty("local_development", "0").equals("1");
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java
index fd59825..17b2a61 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java
@@ -16,8 +16,6 @@
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestDiagnosticMessagesImpl;
 import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.TestRuntime;
-import com.android.tools.r8.TestRuntime.CfRuntime;
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.errors.Unreachable;
 import com.android.tools.r8.origin.Origin;
@@ -26,55 +24,12 @@
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
-import org.junit.Assume;
 
 public class DesugaredLibraryTestBase extends TestBase {
 
-  private static final Path CONVERSION_FOLDER = Paths.get("src/test/desugaredLibrary");
-  private Path[] conversions;
-
-  public Path[] computeOrGetConversionClasses() {
-    if (conversions != null) {
-      return conversions;
-    }
-    Assume.assumeTrue(
-        "JDK8 javac is required to avoid dealing with modules and JDK8 is not checked-in on"
-            + " windows",
-        !ToolHelper.isWindows());
-    try {
-      CfRuntime runtime = TestRuntime.getCheckedInJdk8();
-      Path conversionFolder = temp.newFolder("conversions").toPath();
-
-      // Compile the stubs to be able to compile the conversions.
-      Path stubsJar =
-          javac(runtime)
-              .addSourceFiles(
-                  getAllFilesWithSuffixInDirectory(CONVERSION_FOLDER.resolve("stubs"), "java"))
-              .compile();
-
-      // Compile the conversions using the stubs.
-      javac(runtime)
-          .setOutputPath(conversionFolder)
-          .addClasspathFiles(stubsJar)
-          .addSourceFiles(
-              getAllFilesWithSuffixInDirectory(CONVERSION_FOLDER.resolve("conversions"), "java"))
-          .compile();
-
-      conversions = getAllFilesWithSuffixInDirectory(conversionFolder, "class");
-      assert conversions.length > 0
-          : "Something went wrong during compilation, check the runJavac return value for"
-              + " debugging.";
-      return conversions;
-    } catch (IOException e) {
-      throw new Error(e);
-    }
-  }
-
   protected boolean requiresEmulatedInterfaceCoreLibDesugaring(TestParameters parameters) {
     return parameters.getApiLevel().getLevel() < AndroidApiLevel.N.getLevel();
   }
@@ -107,13 +62,13 @@
       // This implies that extra warning are generated if this is set.
       boolean disableL8AnnotationRemovalForTesting = !additionalProgramFiles.isEmpty();
       ArrayList<Path> extraPaths = new ArrayList<>(additionalProgramFiles);
-      Collections.addAll(extraPaths, computeOrGetConversionClasses());
       TestDiagnosticMessagesImpl diagnosticsHandler = new TestDiagnosticMessagesImpl();
       Path desugaredLib = temp.newFolder().toPath().resolve("desugar_jdk_libs_dex.zip");
       L8Command.Builder l8Builder =
           L8Command.builder(diagnosticsHandler)
               .addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.P))
               .addProgramFiles(ToolHelper.getDesugarJDKLibs())
+              .addProgramFiles(ToolHelper.DESUGAR_LIB_CONVERSIONS)
               .setMode(shrink ? CompilationMode.RELEASE : CompilationMode.DEBUG)
               .addProgramFiles(extraPaths)
               .addDesugaredLibraryConfiguration(
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/BasicTimeConversionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/BasicTimeConversionTest.java
index a5b0176..1e66f26 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/BasicTimeConversionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/BasicTimeConversionTest.java
@@ -35,7 +35,7 @@
     L8Command.Builder l8Builder =
         L8Command.builder(diagnosticsHandler)
             .addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.P))
-            .addProgramFiles(computeOrGetConversionClasses())
+            .addProgramFiles(ToolHelper.DESUGAR_LIB_CONVERSIONS)
             .addDesugaredLibraryConfiguration(
                 StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
             .setMinApiLevel(AndroidApiLevel.B.getLevel())
diff --git a/tools/archive.py b/tools/archive.py
index ff0f3db..c24babb 100755
--- a/tools/archive.py
+++ b/tools/archive.py
@@ -140,6 +140,7 @@
     utils.D8,
     utils.R8LIB,
     utils.R8LIB_NO_DEPS,
+    utils.LIBRARY_DESUGAR_CONVERSIONS,
     '-Pno_internal'
   ])
 
@@ -235,7 +236,9 @@
         with utils.TempDir() as tmp_dir:
           desugar_jdk_libs_configuration_jar = os.path.join(tmp_dir, jar_name)
           create_maven_release.generate_jar_with_desugar_configuration(
-              utils.DESUGAR_CONFIGURATION, desugar_jdk_libs_configuration_jar)
+              utils.DESUGAR_CONFIGURATION,
+              utils.LIBRARY_DESUGAR_CONVERSIONS_ZIP,
+              desugar_jdk_libs_configuration_jar)
 
           if options.dry_run:
             print('Dry run, not actually creating maven repo for '
diff --git a/tools/create_maven_release.py b/tools/create_maven_release.py
index 72186a8..cc36693 100755
--- a/tools/create_maven_release.py
+++ b/tools/create_maven_release.py
@@ -16,6 +16,7 @@
 from string import Template
 import tempfile
 import utils
+import zipfile
 
 DEPENDENCYTEMPLATE = Template(
 """
@@ -333,16 +334,29 @@
       out)
 
 # Write the desugaring configuration of a jar file with the following content:
-#  META-INF
-#    desugar
-#      d8
+#  java/
+#    util/
+#      <java.util conversions classes>
+#    time/
+#      <java.time conversions classes>
+#  META-INF/
+#    desugar/
+#      d8/
 #        desugar.json
-def generate_jar_with_desugar_configuration(configuration, destination):
+#        lint/
+#          <lint files>
+def generate_jar_with_desugar_configuration(configuration, conversions, destination):
   with utils.TempDir() as tmp_dir:
+    # Add conversion classes.
+    with zipfile.ZipFile(conversions, 'r') as conversions_zip:
+      conversions_zip.extractall(tmp_dir)
+
+    # Add configuration
     configuration_dir = join(tmp_dir, 'META-INF', 'desugar', 'd8')
     makedirs(configuration_dir)
     copyfile(configuration, join(configuration_dir, 'desugar.json'))
 
+    # Add lint configuartion.
     lint_dir = join(configuration_dir, 'lint')
     makedirs(lint_dir)
     cmd = [
@@ -367,7 +381,9 @@
   # Generate the jar with the configuration file.
   jar_file = 'desugar_configuration.jar'
   generate_jar_with_desugar_configuration(
-      utils.DESUGAR_CONFIGURATION, jar_file)
+      utils.DESUGAR_CONFIGURATION,
+      utils.LIBRARY_DESUGAR_CONVERSIONS_ZIP,
+      jar_file)
   # Write the maven zip file.
   generate_maven_zip(
       'desugar_jdk_libs_configuration', version, pom_file, jar_file, out)
diff --git a/tools/utils.py b/tools/utils.py
index 15a9dd9..3178d16 100644
--- a/tools/utils.py
+++ b/tools/utils.py
@@ -41,6 +41,7 @@
 R8LIB = 'r8lib'
 R8LIB_NO_DEPS = 'r8LibNoDeps'
 R8_SRC = 'sourceJar'
+LIBRARY_DESUGAR_CONVERSIONS = 'buildLibraryDesugarConversions'
 
 D8_JAR = os.path.join(LIBS, 'd8.jar')
 R8_JAR = os.path.join(LIBS, 'r8.jar')
@@ -50,16 +51,10 @@
 R8_FULL_EXCLUDE_DEPS_JAR = os.path.join(LIBS, 'r8-full-exclude-deps.jar')
 MAVEN_ZIP = os.path.join(LIBS, 'r8.zip')
 MAVEN_ZIP_LIB = os.path.join(LIBS, 'r8lib.zip')
-# TODO(b/134732760): The JSON configuration should be moved.
+LIBRARY_DESUGAR_CONVERSIONS_ZIP = os.path.join(LIBS, 'library_desugar_conversions.zip')
+
 DESUGAR_CONFIGURATION = os.path.join(
-      TEST_ROOT,
-      'com',
-      'android',
-      'tools',
-      'r8',
-      'desugar',
-      'desugaredlibrary',
-      'desugar_jdk_libs.json')
+      SRC_ROOT, 'library_desugar', 'desugar_jdk_libs.json')
 DESUGAR_CONFIGURATION_MAVEN_ZIP = os.path.join(
   LIBS, 'desugar_jdk_libs_configuration.zip')
 GENERATED_LICENSE = os.path.join(GENERATED_LICENSE_DIR, 'LICENSE')
