Add all dependencies for building to local Maven repositories
All dependencies required by Gradle are now in these two local Maven
repositories:
third_party/dependencies
third_party/dependencies_new
THe first is for the current Gradle builf. The second is the additional
dependencies required for the new Gradle setup in d8_r8.
The dependencies will be botstrapped from root settings.gradle (and
settings.gradle.kts) downloading these from GCS before build configuration.
Tested with both current and future Gradle build.
Test:
rm -rf third_party/dependencies && \
rm -f third_party/dependencies.tar.gz && \
rm -rf third_party/dependencies_new && \
rm -f third_party/dependencies_new.tar.gz && \
rm -rf .gradle && \
rm -rf .gradle && tools/gradle.py --gradle-user-home .gradle test --no-daemon
Test:
rm -rf third_party/dependencies && \
rm -f third_party/dependencies.tar.gz && \
rm -rf third_party/dependencies_new && \
rm -f third_party/dependencies_new.tar.gz && \
rm -rf .gradle && \
tools/gradle.py --new-gradle -q projects --gradle-user-home .gradle
The dependeicies have been collected through a trail and error process adding
missing dependencies until build and test succeeded.
third_party/dependencies contains the following libraries:
third_party/dependencies/antlr/antlr/2.7.7/antlr-2.7.7.pom
third_party/dependencies/com/android/support/support-annotations/25.4.0/support-annotations-25.4.0.pom
third_party/dependencies/com/android/support/support-compat/25.4.0/support-compat-25.4.0.pom
third_party/dependencies/com/android/support/support-core-ui/25.4.0/support-core-ui-25.4.0.pom
third_party/dependencies/com/android/support/support-core-utils/25.4.0/support-core-utils-25.4.0.pom
third_party/dependencies/com/android/support/support-fragment/25.4.0/support-fragment-25.4.0.pom
third_party/dependencies/com/android/support/support-media-compat/25.4.0/support-media-compat-25.4.0.pom
third_party/dependencies/com/android/support/support-v4/25.4.0/support-v4-25.4.0.pom
third_party/dependencies/com/android/support/test/espresso/espresso-core/3.0.0/espresso-core-3.0.0.pom
third_party/dependencies/com/android/support/test/espresso/espresso-idling-resource/3.0.0/espresso-idling-resource-3.0.0.pom
third_party/dependencies/com/android/support/test/rules/1.0.0/rules-1.0.0.pom
third_party/dependencies/com/android/support/test/runner/1.0.0/runner-1.0.0.pom
third_party/dependencies/com/android/tools/smali/smali/3.0.3/smali-3.0.3.pom
third_party/dependencies/com/android/tools/smali/smali-dexlib2/3.0.3/smali-dexlib2-3.0.3.pom
third_party/dependencies/com/android/tools/smali/smali-util/3.0.3/smali-util-3.0.3.pom
third_party/dependencies/com/beust/jcommander/1.48/jcommander-1.48.pom
third_party/dependencies/com/beust/jcommander/1.64/jcommander-1.64.pom
third_party/dependencies/com/github/ben-manes/caffeine/caffeine/3.0.5/caffeine-3.0.5.pom
third_party/dependencies/com/github/kevinstern/software-and-algorithms/1.0/software-and-algorithms-1.0.pom
third_party/dependencies/com/google/auto/auto-common/1.2.1/auto-common-1.2.1.pom
third_party/dependencies/com/google/auto/service/auto-service-aggregator/1.0.1/auto-service-aggregator-1.0.1.pom
third_party/dependencies/com/google/auto/service/auto-service-annotations/1.0.1/auto-service-annotations-1.0.1.pom
third_party/dependencies/com/google/auto/value/auto-value-annotations/1.9/auto-value-annotations-1.9.pom
third_party/dependencies/com/google/auto/value/auto-value-parent/1.9/auto-value-parent-1.9.pom
third_party/dependencies/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom
third_party/dependencies/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.pom
third_party/dependencies/com/google/code/gson/gson/2.7/gson-2.7.pom
third_party/dependencies/com/google/code/gson/gson-parent/2.7/gson-parent-2.7.pom
third_party/dependencies/com/google/errorprone/error_prone_annotation/2.18.0/error_prone_annotation-2.18.0.pom
third_party/dependencies/com/google/errorprone/error_prone_annotations/2.10.0/error_prone_annotations-2.10.0.pom
third_party/dependencies/com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0.pom
third_party/dependencies/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0.pom
third_party/dependencies/com/google/errorprone/error_prone_annotations/2.7.1/error_prone_annotations-2.7.1.pom
third_party/dependencies/com/google/errorprone/error_prone_check_api/2.18.0/error_prone_check_api-2.18.0.pom
third_party/dependencies/com/google/errorprone/error_prone_core/2.18.0/error_prone_core-2.18.0.pom
third_party/dependencies/com/google/errorprone/error_prone_parent/2.10.0/error_prone_parent-2.10.0.pom
third_party/dependencies/com/google/errorprone/error_prone_parent/2.11.0/error_prone_parent-2.11.0.pom
third_party/dependencies/com/google/errorprone/error_prone_parent/2.18.0/error_prone_parent-2.18.0.pom
third_party/dependencies/com/google/errorprone/error_prone_parent/2.7.1/error_prone_parent-2.7.1.pom
third_party/dependencies/com/google/errorprone/error_prone_type_annotations/2.18.0/error_prone_type_annotations-2.18.0.pom
third_party/dependencies/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.pom
third_party/dependencies/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.pom
third_party/dependencies/com/google/guava/guava/31.1-android/guava-31.1-android.pom
third_party/dependencies/com/google/guava/guava/31.1-jre/guava-31.1-jre.pom
third_party/dependencies/com/google/guava/guava-parent/26.0-android/guava-parent-26.0-android.pom
third_party/dependencies/com/google/guava/guava-parent/31.0.1-jre/guava-parent-31.0.1-jre.pom
third_party/dependencies/com/google/guava/guava-parent/31.1-android/guava-parent-31.1-android.pom
third_party/dependencies/com/google/guava/guava-parent/31.1-jre/guava-parent-31.1-jre.pom
third_party/dependencies/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom
third_party/dependencies/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.pom
third_party/dependencies/com/google/protobuf/protobuf-bom/3.19.2/protobuf-bom-3.19.2.pom
third_party/dependencies/com/google/protobuf/protobuf-java/3.19.2/protobuf-java-3.19.2.pom
third_party/dependencies/com/google/protobuf/protobuf-parent/3.19.2/protobuf-parent-3.19.2.pom
third_party/dependencies/com/squareup/javawriter/2.1.1/javawriter-2.1.1.pom
third_party/dependencies/io/github/java-diff-utils/java-diff-utils/4.0/java-diff-utils-4.0.pom
third_party/dependencies/it/unimi/dsi/fastutil/7.2.1/fastutil-7.2.1.pom
third_party/dependencies/javax/inject/javax.inject/1/javax.inject-1.pom
third_party/dependencies/junit/junit/4.12/junit-4.12.pom
third_party/dependencies/junit/junit/4.13-beta-2/junit-4.13-beta-2.pom
third_party/dependencies/net/bytebuddy/byte-buddy/1.7.4/byte-buddy-1.7.4.pom
third_party/dependencies/net/bytebuddy/byte-buddy-agent/1.7.4/byte-buddy-agent-1.7.4.pom
third_party/dependencies/net/bytebuddy/byte-buddy-parent/1.7.4/byte-buddy-parent-1.7.4.pom
third_party/dependencies/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.pom
third_party/dependencies/org/antlr/antlr/3.5.2/antlr-3.5.2.pom
third_party/dependencies/org/antlr/antlr-master/3.5.2/antlr-master-3.5.2.pom
third_party/dependencies/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.pom
third_party/dependencies/org/antlr/ST4/4.0.8/ST4-4.0.8.pom
third_party/dependencies/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.pom
third_party/dependencies/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.pom
third_party/dependencies/org/checkerframework/checker-qual/3.19.0/checker-qual-3.19.0.pom
third_party/dependencies/org/checkerframework/dataflow-errorprone/3.27.0/dataflow-errorprone-3.27.0.pom
third_party/dependencies/org/eclipse/jgit/org.eclipse.jgit/4.4.1.201607150455-r/org.eclipse.jgit-4.4.1.201607150455-r.pom
third_party/dependencies/org/eclipse/jgit/org.eclipse.jgit-parent/4.4.1.201607150455-r/org.eclipse.jgit-parent-4.4.1.201607150455-r.pom
third_party/dependencies/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
third_party/dependencies/org/hamcrest/hamcrest-integration/1.3/hamcrest-integration-1.3.pom
third_party/dependencies/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.pom
third_party/dependencies/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
third_party/dependencies/org/javassist/javassist/3.29.2-GA/javassist-3.29.2-GA.pom
third_party/dependencies/org/jetbrains/annotations/13.0/annotations-13.0.pom
third_party/dependencies/org/jetbrains/kotlin/kotlin-reflect/1.8.0/kotlin-reflect-1.8.0.pom
third_party/dependencies/org/jetbrains/kotlin/kotlin-stdlib/1.8.0/kotlin-stdlib-1.8.0.pom
third_party/dependencies/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.0/kotlin-stdlib-common-1.8.0.pom
third_party/dependencies/org/jetbrains/kotlinx/kotlinx-metadata-jvm/0.6.0/kotlinx-metadata-jvm-0.6.0.pom
third_party/dependencies/org/mockito/mockito-core/2.10.0/mockito-core-2.10.0.pom
third_party/dependencies/org/objenesis/objenesis/2.6/objenesis-2.6.pom
third_party/dependencies/org/objenesis/objenesis-parent/2.6/objenesis-parent-2.6.pom
third_party/dependencies/org/ow2/asm/asm/9.5/asm-9.5.pom
third_party/dependencies/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.pom
third_party/dependencies/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.pom
third_party/dependencies/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.pom
third_party/dependencies/org/ow2/asm/asm-util/9.5/asm-util-9.5.pom
third_party/dependencies/org/ow2/ow2/1.5.1/ow2-1.5.1.pom
third_party/dependencies/org/pcollections/pcollections/3.1.4/pcollections-3.1.4.pom
third_party/dependencies/org/sonatype/oss/oss-parent/3/oss-parent-3.pom
third_party/dependencies/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
third_party/dependencies/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
third_party/dependencies/org/testng/testng/6.10/testng-6.10.pom
third_party/dependncies_new contains the following libraries:
third_party/dependencies_new/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom
third_party/dependencies_new/net/ltgt/errorprone/net.ltgt.errorprone.gradle.plugin/3.0.1/net.ltgt.errorprone.gradle.plugin-3.0.1.pom
third_party/dependencies_new/net/ltgt/gradle/gradle-errorprone-plugin/3.0.1/gradle-errorprone-plugin-3.0.1.pom
third_party/dependencies_new/org/gradle/kotlin/gradle-kotlin-dsl-plugins/4.0.6/gradle-kotlin-dsl-plugins-4.0.6.pom
third_party/dependencies_new/org/gradle/kotlin/kotlin-dsl/org.gradle.kotlin.kotlin-dsl.gradle.plugin/4.0.6/org.gradle.kotlin.kotlin-dsl.gradle.plugin-4.0.6.pom
third_party/dependencies_new/org/jetbrains/annotations/13.0/annotations-13.0.pom
third_party/dependencies_new/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-android-extensions/1.8.10/kotlin-android-extensions-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.8.10/kotlin-annotation-processing-gradle-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-build-common/1.8.10/kotlin-build-common-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.8.10/kotlin-compiler-embeddable-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-compiler-runner/1.8.10/kotlin-compiler-runner-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-daemon-client/1.8.10/kotlin-daemon-client-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.8.10/kotlin-daemon-embeddable-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-gradle-plugin/1.8.10/kotlin-gradle-plugin-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.8.10/kotlin-gradle-plugin-api-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.8.10/kotlin-gradle-plugin-idea-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.8.10/kotlin-gradle-plugin-idea-proto-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.8.10/kotlin-gradle-plugin-model-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.8.10/kotlin-klib-commonizer-api-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-native-utils/1.8.10/kotlin-native-utils-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-project-model/1.8.10/kotlin-project-model-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-reflect/1.8.10/kotlin-reflect-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.8.10/kotlin-sam-with-receiver-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-scripting-common/1.8.10/kotlin-scripting-common-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.8.10/kotlin-scripting-compiler-embeddable-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.8.10/kotlin-scripting-compiler-impl-embeddable-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-scripting-jvm/1.8.10/kotlin-scripting-jvm-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-script-runtime/1.8.10/kotlin-script-runtime-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-stdlib/1.6.10/kotlin-stdlib-1.6.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-stdlib/1.8.10/kotlin-stdlib-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.10/kotlin-stdlib-common-1.6.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.10/kotlin-stdlib-common-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.10/kotlin-stdlib-jdk7-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.10/kotlin-stdlib-jdk8-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-tooling-core/1.8.10/kotlin-tooling-core-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-util-io/1.8.10/kotlin-util-io-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlin/kotlin-util-klib/1.8.10/kotlin-util-klib-1.8.10.pom
third_party/dependencies_new/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom
Bug: b/280042032
Change-Id: If98c4a93cbb76aaea99538f540f3c2117eef20e9
diff --git a/build.gradle b/build.gradle
index 5df3bb4..35cc8df 100644
--- a/build.gradle
+++ b/build.gradle
@@ -11,14 +11,6 @@
import tasks.DownloadDependency
import tasks.GetJarsFromConfiguration
-buildscript {
- repositories {
- google()
- mavenCentral()
- gradlePluginPortal()
- }
-}
-
plugins {
id "net.ltgt.errorprone" version "2.0.2"
}
@@ -27,6 +19,8 @@
apply plugin: 'idea'
ext {
+ // When updating dependencies also update and run
+ // tools/create_local_maven_with_dependencies.py
androidSupportVersion = '25.4.0'
asmVersion = '9.5' // When updating update tools/asmifier.py, build.src and Toolhelper as well.
javassistVersion = '3.29.2-GA'
@@ -46,8 +40,9 @@
}
repositories {
- google()
- mavenCentral()
+ maven {
+ url uri('file:third_party/dependencies')
+ }
}
if (project.hasProperty('with_code_coverage')) {
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 85815bd..dc6f3be 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -5,8 +5,9 @@
apply plugin: 'idea'
repositories {
- google()
- mavenCentral()
+ maven {
+ url uri('file:../third_party/dependencies')
+ }
}
ext {
diff --git a/commonBuildSrc/settings.gradle.kts b/commonBuildSrc/settings.gradle.kts
index 75c6675..f346f85 100644
--- a/commonBuildSrc/settings.gradle.kts
+++ b/commonBuildSrc/settings.gradle.kts
@@ -4,15 +4,23 @@
pluginManagement {
repositories {
- gradlePluginPortal()
+ maven {
+ url = uri("file:../third_party/dependencies_new")
+ }
+ maven {
+ url = uri("file:../third_party/dependencies")
+ }
}
}
dependencyResolutionManagement {
repositories {
- google()
- mavenCentral()
- gradlePluginPortal()
+ maven {
+ url = uri("file:../third_party/dependencies_new")
+ }
+ maven {
+ url = uri("file:../third_party/dependencies")
+ }
}
}
diff --git a/d8_r8/keepanno/settings.gradle.kts b/d8_r8/keepanno/settings.gradle.kts
index 7b4d459..c214cca 100644
--- a/d8_r8/keepanno/settings.gradle.kts
+++ b/d8_r8/keepanno/settings.gradle.kts
@@ -4,15 +4,24 @@
pluginManagement {
repositories {
- gradlePluginPortal()
+ maven {
+ url = uri("file:../../third_party/dependencies")
+ }
+ maven {
+ url = uri("file:../../third_party/dependencies_new")
+ }
}
}
dependencyResolutionManagement {
- repositories {
- mavenCentral()
- gradlePluginPortal()
+ repositories {
+ maven {
+ url= uri("file:../../third_party/dependencies")
}
+ maven {
+ url= uri("file:../../third_party/dependencies_new")
+ }
+ }
}
rootProject.name = "keepanno"
diff --git a/d8_r8/main/settings.gradle.kts b/d8_r8/main/settings.gradle.kts
index 2d727f0..347b7a4 100644
--- a/d8_r8/main/settings.gradle.kts
+++ b/d8_r8/main/settings.gradle.kts
@@ -4,15 +4,24 @@
pluginManagement {
repositories {
- gradlePluginPortal()
+ maven {
+ url = uri("file:../../third_party/dependencies")
+ }
+ maven {
+ url = uri("file:../../third_party/dependencies_new")
+ }
}
}
dependencyResolutionManagement {
- repositories {
- mavenCentral()
- gradlePluginPortal()
+ repositories {
+ maven {
+ url= uri("file:../../third_party/dependencies")
}
+ maven {
+ url= uri("file:../../third_party/dependencies_new")
+ }
+ }
}
rootProject.name = "r8"
diff --git a/d8_r8/settings.gradle.kts b/d8_r8/settings.gradle.kts
index 2feb93c..9d2dfa1 100644
--- a/d8_r8/settings.gradle.kts
+++ b/d8_r8/settings.gradle.kts
@@ -6,19 +6,67 @@
pluginManagement {
repositories {
- gradlePluginPortal()
+ maven {
+ url = uri("file:../../third_party/dependencies")
+ }
+ maven {
+ url = uri("file:../../third_party/dependencies_new")
+ }
}
}
dependencyResolutionManagement {
repositories {
- mavenCentral()
- gradlePluginPortal()
+ maven {
+ url= uri("file:../third_party/dependencies")
+ }
+ maven {
+ url= uri("file:../third_party/dependencies_new")
+ }
}
}
rootProject.name = "d8-r8"
+// Bootstrap building by downloading dependencies.
+fun String.execute() =
+ org.codehaus.groovy.runtime.ProcessGroovyMethods.execute(this)
+
+fun Process.out() =
+ String(
+ this.getInputStream().readAllBytes(),
+ java.nio.charset.StandardCharsets.UTF_8)
+fun Process.err() =
+ String(
+ this.getErrorStream().readAllBytes(),
+ java.nio.charset.StandardCharsets.UTF_8)
+
+val dependencies_bucket = "r8-deps"
+val dependencies_sha1_file = "third_party/dependencies.tar.gz.sha1"
+var cmd =
+ ("download_from_google_storage.py --extract"
+ + " --bucket ${dependencies_bucket}"
+ + " --sha1_file ${dependencies_sha1_file}")
+var process = cmd.execute()
+process.waitFor()
+if (process.exitValue() != 0) {
+ throw GradleException(
+ "Bootstrapping dependencies download failed:"
+ + "\n${process.err()}\n${process.out()}")
+}
+val dependencies_new_sha1_file = "third_party/dependencies_new.tar.gz.sha1"
+cmd =
+ ("download_from_google_storage.py --extract"
+ + " --bucket ${dependencies_bucket}"
+ + " --sha1_file ${dependencies_new_sha1_file}")
+process = cmd.execute()
+process.waitFor()
+if (process.exitValue() != 0) {
+ throw GradleException(
+ "Bootstrapping dependencies_new download failed:"
+ + "\n${process.err()}\n${process.out()}")
+}
+
// This project is temporarily located in d8_r8. When moved to root, the parent
// folder should just be removed.
includeBuild(rootProject.projectDir.parentFile.resolve("commonBuildSrc"))
diff --git a/d8_r8/test/settings.gradle.kts b/d8_r8/test/settings.gradle.kts
index 3138d52..5946a12 100644
--- a/d8_r8/test/settings.gradle.kts
+++ b/d8_r8/test/settings.gradle.kts
@@ -2,13 +2,28 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-dependencyResolutionManagement {
+pluginManagement {
repositories {
- mavenCentral()
- gradlePluginPortal()
+ maven {
+ url = uri("file:../../third_party/dependencies")
+ }
+ maven {
+ url = uri("file:../../third_party/dependencies_new")
+ }
}
}
+dependencyResolutionManagement {
+ repositories {
+ maven {
+ url= uri("file:../third_party/dependencies")
+ }
+ maven {
+ url= uri("file:../third_party/dependencies_new")
+ }
+ }
+}
+
rootProject.name = "r8-tests"
val root = rootProject.projectDir.parentFile
diff --git a/d8_r8/test_modules/tests_java_8/settings.gradle.kts b/d8_r8/test_modules/tests_java_8/settings.gradle.kts
index 290b820..6ab7fac 100644
--- a/d8_r8/test_modules/tests_java_8/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_8/settings.gradle.kts
@@ -3,15 +3,24 @@
// BSD-style license that can be found in the LICENSE file.
pluginManagement {
- repositories {
- gradlePluginPortal()
- }
+ repositories {
+ maven {
+ url = uri("file:../../../third_party/dependencies")
+ }
+ maven {
+ url = uri("file:../../../third_party/dependencies_new")
+ }
+ }
}
dependencyResolutionManagement {
repositories {
- mavenCentral()
- gradlePluginPortal()
+ maven {
+ url= uri("file:../third_party/dependencies")
+ }
+ maven {
+ url= uri("file:../third_party/dependencies_new")
+ }
}
}
diff --git a/settings.gradle b/settings.gradle
index 9924d92..8ba5ad9 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -4,3 +4,16 @@
rootProject.name = 'r8'
+// Bootstrap building by downloading dependencies.
+def dependencies_bucket = "r8-deps"
+def dependencies_sha1_file = "third_party/dependencies.tar.gz.sha1"
+def cmd =
+ ("download_from_google_storage.py --extract"
+ + " --bucket ${dependencies_bucket}"
+ + " --sha1_file ${dependencies_sha1_file}")
+def process = cmd.execute()
+process.waitFor()
+if (process.exitValue() != 0) {
+ throw new GradleException(
+ "Bootstrapping dependencies download failed:\n${process.err.text}")
+}
\ No newline at end of file
diff --git a/third_party/dependencies.tar.gz.sha1 b/third_party/dependencies.tar.gz.sha1
new file mode 100644
index 0000000..cf12fc2
--- /dev/null
+++ b/third_party/dependencies.tar.gz.sha1
@@ -0,0 +1 @@
+76c51489d87c284cea0e73646c5cc45a9ffc3665
\ No newline at end of file
diff --git a/third_party/dependencies_new.tar.gz.sha1 b/third_party/dependencies_new.tar.gz.sha1
new file mode 100644
index 0000000..54a7c72
--- /dev/null
+++ b/third_party/dependencies_new.tar.gz.sha1
@@ -0,0 +1 @@
+08dbd497e182be658628252f0bb890894cc88dcc
\ No newline at end of file
diff --git a/tools/create_local_maven_with_dependencies.py b/tools/create_local_maven_with_dependencies.py
new file mode 100755
index 0000000..296cdf0
--- /dev/null
+++ b/tools/create_local_maven_with_dependencies.py
@@ -0,0 +1,143 @@
+#!/usr/bin/env python3
+# Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import argparse
+import os.path
+import subprocess
+import shutil
+import sys
+
+import utils
+
+REPOSITORIES = [
+ 'Maven Central=https://repo1.maven.org/maven2/',
+ 'Google=https://maven.google.com/',
+ "Gradle Plugins=https://plugins.gradle.org/m2/",
+]
+
+ANDRDID_SUPPORT_VERSION = '25.4.0'
+ASM_VERSION = '9.5'
+ESPRESSO_VERSION = '3.0.0'
+FASTUTIL_VERSION = '7.2.1'
+KOTLIN_METADATA_VERSION = '0.6.0'
+KOTLIN_VERSION = '1.8.0'
+GUAVA_VERSION = '31.1-jre'
+GSON_VERSION = '2.7'
+JAVASSIST_VERSION = '3.29.2-GA'
+JUNIT_VERSION = '4.13-beta-2'
+MOCKITO_VERSION = '2.10.0'
+SMALI_VERSION = '3.0.3'
+ERROR_PRONE_VERSION = '2.18.0'
+TESTNG_VERSION = '6.10'
+
+
+
+BUILD_DEPENDENCIES = [
+ 'com.google.code.gson:gson:{version}'.format(version = GSON_VERSION),
+ 'com.google.guava:guava:{version}'.format(version = GUAVA_VERSION),
+ 'it.unimi.dsi:fastutil:{version}'.format(version = FASTUTIL_VERSION),
+ 'org.jetbrains.kotlinx:kotlinx-metadata-jvm:{version}'.format(version = KOTLIN_METADATA_VERSION),
+ 'org.ow2.asm:asm:{version}'.format(version = ASM_VERSION),
+ 'org.ow2.asm:asm-util:{version}'.format(version = ASM_VERSION),
+ 'org.ow2.asm:asm-commons:{version}'.format(version = ASM_VERSION),
+]
+
+TEST_DEPENDENCIES = [
+ 'junit:junit:{version}'.format(version = JUNIT_VERSION),
+ 'com.android.support:support-v4:{version}'.format(version = ANDRDID_SUPPORT_VERSION),
+ 'com.android.support.test.espresso:espresso-core:{version}'.format(version = ESPRESSO_VERSION),
+ 'com.android.tools.smali:smali:{version}'.format(version = SMALI_VERSION),
+ 'com.google.errorprone:error_prone_core:{version}'.format(version = ERROR_PRONE_VERSION),
+ 'org.javassist:javassist:{version}'.format(version = JAVASSIST_VERSION),
+ 'org.jetbrains.kotlin:kotlin-stdlib:{version}'.format(version = KOTLIN_VERSION),
+ 'org.jetbrains.kotlin:kotlin-reflect:{version}'.format(version = KOTLIN_VERSION),
+ 'org.mockito:mockito-core:{version}'.format(version = MOCKITO_VERSION),
+ 'org.testng:testng:{version}'.format(version = TESTNG_VERSION),
+]
+
+NEW_DEPENDENCIES = [
+ 'org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:4.0.6',
+ 'org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.8.10',
+ 'org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.8.10',
+ 'org.jetbrains.kotlin:kotlin-reflect:1.6.10',
+ 'org.jetbrains.kotlin:kotlin-reflect:1.8.10',
+ 'org.jetbrains.kotlin:kotlin-script-runtime:1.8.10',
+ 'org.jetbrains.kotlin:kotlin-tooling-core:1.8.10',
+ 'net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin:3.0.1'
+]
+
+def dependencies_tar(dependencies_path):
+ return os.path.join(
+ os.path.dirname(dependencies_path),
+ os.path.basename(dependencies_path) + '.tar.gz')
+
+def dependencies_tar_sha1(dependencies_path):
+ return os.path.join(
+ os.path.dirname(dependencies_path),
+ os.path.basename(dependencies_path) + '.tar.gz.sha1')
+
+def remove_local_maven_repository(dependencies_path):
+ if os.path.exists(dependencies_path):
+ shutil.rmtree(dependencies_path)
+ tar = dependencies_tar(dependencies_path)
+ if os.path.exists(tar):
+ os.remove(tar)
+ sha1 = dependencies_tar_sha1(dependencies_path)
+ if os.path.exists(sha1):
+ os.remove(sha1)
+
+def create_local_maven_repository(args, dependencies_path, repositories, dependencies):
+ with utils.ChangedWorkingDirectory(args.studio):
+ cmd = [
+ os.path.join('tools', 'base', 'bazel', 'bazel'),
+ 'run',
+ '//tools/base/bazel:local_maven_repository_generator_cli',
+ '--',
+ '--repo-path',
+ dependencies_path,
+ '--fetch']
+ for repository in repositories:
+ cmd.extend(['--remote-repo', repository])
+ for dependency in dependencies:
+ cmd.append(dependency)
+ subprocess.check_call(cmd)
+
+def parse_options():
+ result = argparse.ArgumentParser(
+ description='Create local Maven repository woth dependencies')
+ result.add_argument('--studio',
+ metavar=('<path>'),
+ required=True,
+ help='Path to a studio-main checkout (to get the tool '
+ '//tools/base/bazel:local_maven_repository_generator_cli)')
+ return result.parse_args()
+
+
+def main():
+ args = parse_options()
+
+ dependencies_path = os.path.join(utils.THIRD_PARTY, 'dependencies')
+ print("Downloading to " + dependencies_path)
+ remove_local_maven_repository(dependencies_path)
+ create_local_maven_repository(
+ args, dependencies_path, REPOSITORIES, BUILD_DEPENDENCIES + TEST_DEPENDENCIES)
+
+ dependencies_new_path = os.path.join(utils.THIRD_PARTY, 'dependencies_new')
+ print("Downloading to " + dependencies_new_path)
+ remove_local_maven_repository(dependencies_new_path)
+ create_local_maven_repository(
+ args, dependencies_new_path, REPOSITORIES, NEW_DEPENDENCIES)
+
+ print('Now run')
+ print(' (cd {third_party};'
+ ' upload_to_google_storage.py -a --bucket r8-deps {dependencies};'
+ ' upload_to_google_storage.py -a --bucket r8-deps {dependencies_new})'
+ .format(
+ third_party = utils.THIRD_PARTY,
+ dependencies = 'dependencies',
+ dependencies_new = 'dependencies_new'))
+
+if __name__ == '__main__':
+ sys.exit(main())