From 55f96b98546a4ba74ecaa07dca00e5cbebd92f51 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 4 Feb 2021 10:33:01 +0100 Subject: [PATCH] fix(android): migrate away from JCenter JCenter is being sunset: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/ --- .gitignore | 1 + android/app/build.gradle | 18 ++++++++++++-- android/build.gradle | 11 +++++---- android/force-resolve-trove4j.gradle | 13 ++++++++++ android/react-native-build.gradle | 4 ++-- android/support/build.gradle | 8 +++---- example/android/build.gradle | 8 ++++--- scripts/configure.js | 8 ++++--- .../__snapshots__/gatherConfig.test.js.snap | 24 ++++++++++++------- 9 files changed, 67 insertions(+), 28 deletions(-) create mode 100644 android/force-resolve-trove4j.gradle diff --git a/.gitignore b/.gitignore index e90c4a2ec..27a8015f5 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ .watchman-* .yarn-offline-mirror/ Pods/ +android/**/build/ clang-format-diff.py coverage/ dist/ diff --git a/android/app/build.gradle b/android/app/build.gradle index 723f3b00e..989f7f151 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -15,7 +15,8 @@ buildscript { apply from: "$androidDir/dependencies.gradle" repositories { - jcenter() + google() + mavenCentral() } dependencies { @@ -29,9 +30,22 @@ repositories { } google() - jcenter() + mavenCentral() + + // TODO: Remove these when they've been published to Maven Central. + // See https://github.com/microsoft/react-native-test-app/issues/305 + jcenter() { + content { + includeGroup("com.facebook.fbjni") + includeGroup("com.facebook.flipper") + includeGroup("com.facebook.fresco") + includeGroup("com.facebook.yoga") + } + } } +apply from: "$projectDir/../force-resolve-trove4j.gradle" + apply plugin: "com.android.application" apply plugin: "kotlin-android" apply plugin: "kotlin-kapt" diff --git a/android/build.gradle b/android/build.gradle index bc4729a37..d016193f7 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,12 +1,13 @@ -buildscript { +buildscript { scriptHandler -> + def buildscriptDir = buildscript.sourceFile.getParent() + apply from: "$buildscriptDir/dependencies.gradle" + apply from: "$buildscriptDir/force-resolve-trove4j.gradle", to: scriptHandler + repositories { - jcenter() google() + mavenCentral() } - def buildscriptDir = buildscript.sourceFile.getParent() - apply from: "$buildscriptDir/dependencies.gradle" - dependencies { classpath "com.android.tools.build:gradle:$androidPluginVersion" } diff --git a/android/force-resolve-trove4j.gradle b/android/force-resolve-trove4j.gradle new file mode 100644 index 000000000..b7b38f12a --- /dev/null +++ b/android/force-resolve-trove4j.gradle @@ -0,0 +1,13 @@ +configurations.all { + resolutionStrategy { + eachDependency { + // https://issuetracker.google.com/issues/109894262#comment9 + if (requested.group == "org.jetbrains.trove4j" && + requested.name == "trove4j" && + requested.version == "20160824") + { + useTarget("org.jetbrains.intellij.deps:trove4j:1.0.20181211") + } + } + } +} diff --git a/android/react-native-build.gradle b/android/react-native-build.gradle index 977361f37..bd8594559 100644 --- a/android/react-native-build.gradle +++ b/android/react-native-build.gradle @@ -4,7 +4,7 @@ buildscript { repositories { google() - jcenter() + mavenCentral() } dependencies { @@ -16,7 +16,7 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } configurations.all { resolutionStrategy { diff --git a/android/support/build.gradle b/android/support/build.gradle index e6ccd5205..6267c1b4a 100644 --- a/android/support/build.gradle +++ b/android/support/build.gradle @@ -1,12 +1,12 @@ repositories { - jcenter() google() + mavenCentral() } -apply plugin: "com.android.library" - def androidDir = "${buildscript.sourceFile.getParent()}/../" -apply from: "$androidDir/dependencies.gradle" +apply from: "$androidDir/force-resolve-trove4j.gradle" + +apply plugin: "com.android.library" android { compileSdkVersion sdk.version diff --git a/example/android/build.gradle b/example/android/build.gradle index 1a023ff54..fd57c7b3a 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,9 +1,11 @@ -buildscript { - apply from: file("../node_modules/react-native-test-app/android/dependencies.gradle") +buildscript { scriptHandler -> + def androidTestAppDir = "../node_modules/react-native-test-app/android" + apply from: "$androidTestAppDir/dependencies.gradle" + apply from: "$androidTestAppDir/force-resolve-trove4j.gradle", to: scriptHandler repositories { - jcenter() google() + mavenCentral() } dependencies { diff --git a/scripts/configure.js b/scripts/configure.js index 130576102..9e740e59e 100755 --- a/scripts/configure.js +++ b/scripts/configure.js @@ -348,12 +348,14 @@ const getConfig = (() => { android: { files: { "build.gradle": join( - "buildscript {", - ` apply from: file("${testAppRelPath}/android/dependencies.gradle")`, + "buildscript { scriptHandler ->", + ` def androidTestAppDir = "${testAppRelPath}/android"`, + ' apply from: "$androidTestAppDir/dependencies.gradle"', + ' apply from: "$androidTestAppDir/force-resolve-trove4j.gradle", to: scriptHandler', "", " repositories {", - " jcenter()", " google()", + " mavenCentral()", " }", "", " dependencies {", diff --git a/test/configure/__snapshots__/gatherConfig.test.js.snap b/test/configure/__snapshots__/gatherConfig.test.js.snap index 9c9d3370c..018c4aa77 100644 --- a/test/configure/__snapshots__/gatherConfig.test.js.snap +++ b/test/configure/__snapshots__/gatherConfig.test.js.snap @@ -54,12 +54,14 @@ Object { ".watchmanconfig": Object { "source": "node_modules/react-native/template/_watchmanconfig", }, - "android/build.gradle": "buildscript { - apply from: file(\\"../../../android/dependencies.gradle\\") + "android/build.gradle": "buildscript { scriptHandler -> + def androidTestAppDir = \\"../../../android\\" + apply from: \\"$androidTestAppDir/dependencies.gradle\\" + apply from: \\"$androidTestAppDir/force-resolve-trove4j.gradle\\", to: scriptHandler repositories { - jcenter() google() + mavenCentral() } dependencies { @@ -184,12 +186,14 @@ Object { ".watchmanconfig": Object { "source": "node_modules/react-native/template/_watchmanconfig", }, - "android/build.gradle": "buildscript { - apply from: file(\\"../../../android/dependencies.gradle\\") + "android/build.gradle": "buildscript { scriptHandler -> + def androidTestAppDir = \\"../../../android\\" + apply from: \\"$androidTestAppDir/dependencies.gradle\\" + apply from: \\"$androidTestAppDir/force-resolve-trove4j.gradle\\", to: scriptHandler repositories { - jcenter() google() + mavenCentral() } dependencies { @@ -287,12 +291,14 @@ Object { ".watchmanconfig": Object { "source": "node_modules/react-native/template/_watchmanconfig", }, - "android/build.gradle": "buildscript { - apply from: file(\\"../../../android/dependencies.gradle\\") + "android/build.gradle": "buildscript { scriptHandler -> + def androidTestAppDir = \\"../../../android\\" + apply from: \\"$androidTestAppDir/dependencies.gradle\\" + apply from: \\"$androidTestAppDir/force-resolve-trove4j.gradle\\", to: scriptHandler repositories { - jcenter() google() + mavenCentral() } dependencies {