KeepSafe / ReLinker

A robust native library loader for Android.
Apache License 2.0
3.23k stars 371 forks source link

Move artifact publishing from JCenter to Maven Central #81

Closed emarc-m closed 3 years ago

emarc-m commented 3 years ago

This PR addresses https://github.com/KeepSafe/ReLinker/issues/79 and https://github.com/KeepSafe/ReLinker/issues/60.

Changes:

I published version 1.4.2 in https://repo1.maven.org/maven2/com/getkeepsafe/relinker/relinker/ based from this PR while testing the publishing process and ensuring credentials configurations work.

I'll publish another version 1.4.3 to have everything tagged and update the README page.

Thanks to:

barnhill commented 3 years ago

Yep ... If you take it out it won't compile.

Brad Barnhill, MSN, RN bradbarnhill@hotmail.com

On Sat, Feb 27, 2021, 9:13 PM Ben Bader notifications@github.com wrote:

@benjamin-bader commented on this pull request.

In build.gradle https://github.com/KeepSafe/ReLinker/pull/81#discussion_r584223364:

 }

}

allprojects { repositories { google()

  • jcenter()
  • mavenCentral()
  • gradlePluginPortal()

Is gradlePluginPortal() necessary here?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/KeepSafe/ReLinker/pull/81#pullrequestreview-600212648, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5S2DVIUJN3BDRUWED6D7TTBGYGPANCNFSM4YKJXREA .

benjamin-bader commented 3 years ago

Yep ... If you take it out it won't compile. Brad Barnhill, MSN, RN bradbarnhill@hotmail.com

Ah, our old friend trove4j, only available on jcenter (and transitively via gradlePluginPortal() which mirrors jcenter). I understand that newer versions of the Android Build Tools will not have this dependency. I'm not sure that this is a long-term solution - when jcenter shuts down, it's not clear that trove4j will still be available on the plugin portal.

There's a workaround I've seen floating around the Android world, which is to redirect that dependency to a version available on Maven Central, like so:

// in build.gradle
buildscript {
  // repositories { ... }

  // dependencies { ... }

  configurations.configureEach {
    resolutionStrategy.eachDependency {
      if (requested.group == "org.jetbrains.trove4j" && requested.name == "trove4j" && requested.version == "20160824") {
        useTarget("org.jetbrains.intellij.deps:trove4j:1.0.20181211")
      }
    }
  }
}

This would let us avoid adding the extra repository, and be perhaps more stable long-term.

barnhill commented 3 years ago

I would vote to leave it be for now and if it stops building then resort to more exotic fixes such as this. But then again this isnt my repo. I fully expect whoever is pulling it in will have this fixed before it goes away on JCenter.

emarc-m commented 3 years ago

Thank you @benjamin-bader and @barnhill for taking a look at this PR.

I'll merge this in on 03/03/2021, update the README and publish version 1.4.3 on Maven Central.

Please let me know if there are any other changes needed before I merge this in. Thank you.