Skip to content

Commit

Permalink
use maven-publish plugin (#31611)
Browse files Browse the repository at this point in the history
Summary:
Gradle has been showing below warning for a while, and this PR fixes the warning using maven-publish plugin, thus taking us one step closer to Gradle 7.x.

> The maven plugin has been deprecated. This is scheduled to be removed in Gradle 7.0. Please use the maven-publish plugin instead. Consult the upgrading guide for further information: https://docs.gradle.org/6.9/userguide/upgrading_version_5.html#legacy_publication_system_is_deprecated_and_replaced_with_the_publish_plugins

Configured maven-publish plugin according to https://developer.android.com/studio/build/maven-publish-plugin, also added **installArchives** task for backwards compatibility.

## Changelog

[Internal] [Changed] - use maven-publish plugin to build and publish Android artifact

Pull Request resolved: #31611

Test Plan: ./gradlew :ReactAndroid:installArchives will create **android** directory for local maven repository with **react-native** package.

Reviewed By: yungsters

Differential Revision: D28802435

Pulled By: ShikaSD

fbshipit-source-id: 7bc7650a700e1a61213c5ec238bcb24fdca954db
  • Loading branch information
dulmandakh authored and facebook-github-bot committed Jun 3, 2021
1 parent 47b0be5 commit fc6fc63
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 90 deletions.
59 changes: 56 additions & 3 deletions ReactAndroid/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
plugins {
id("com.android.library")
id("com.facebook.react.codegen")
id("maven")
id("maven-publish")
id("de.undercouch.download")
}

Expand All @@ -18,6 +18,7 @@ import de.undercouch.gradle.tasks.download.Download
import org.apache.tools.ant.taskdefs.condition.Os
import org.apache.tools.ant.filters.ReplaceTokens

def AAR_OUTPUT_URL = "file://${projectDir}/../android"
// We download various C++ open-source dependencies into downloads.
// We then copy both the downloaded code and our custom makefiles and headers into third-party-ndk.
// After that we build native code from src/main/jni with module path pointing at third-party-ndk.
Expand Down Expand Up @@ -425,6 +426,10 @@ task extractJNIFiles {
}
}

task installArchives {
dependsOn("publishReleasePublicationToNpmRepository")
}

android {
compileSdkVersion 30
ndkVersion ANDROID_NDK_VERSION
Expand Down Expand Up @@ -516,8 +521,6 @@ dependencies {
androidTestImplementation("org.mockito:mockito-core:${MOCKITO_CORE_VERSION}")
}

apply(from: "release.gradle")

react {
// TODO: The library name is chosen for parity with Fabric components & iOS
// This should be changed to a more generic name, e.g. `ReactCoreSpec`.
Expand All @@ -526,3 +529,53 @@ react {
reactNativeRootDir = file("$projectDir/..")
useJavaGenerator = System.getenv("USE_CODEGEN_JAVAPOET") ?: false
}

afterEvaluate {
publishing {
publications {
release(MavenPublication) {
// Applies the component for the release build variant.
from components.release

// You can then customize attributes of the publication as shown below.
artifactId = POM_ARTIFACT_ID
groupId = GROUP
version = VERSION_NAME

pom {
name = POM_NAME
description = "A framework for building native apps with React"
url = "https://github.com/facebook/react-native"

developers {
developer {
id = "facebook"
name = "Facebook"
}
}

licenses {
license {
name = "MIT License"
url = "https://github.com/facebook/react-native/blob/master/LICENSE"
distribution = "repo"
}
}

scm {
url = "https://github.com/facebook/react-native.git"
connection = "scm:git:https://github.com/facebook/react-native.git"
developerConnection = "scm:git:git@github.com:facebook/react-native.git"
}
}
}
}

repositories {
maven {
name = "npm"
url = AAR_OUTPUT_URL
}
}
}
}
87 changes: 0 additions & 87 deletions ReactAndroid/release.gradle

This file was deleted.

0 comments on commit fc6fc63

Please sign in to comment.