123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- /*
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- apply(plugin: "maven")
- apply(plugin: "signing")
- ext {
- AAR_OUTPUT_URL = "file://${projectDir}/../android"
- }
- // Gradle tasks for publishing to maven
- // 1) To install in local maven repo use :installArchives task
- // 2) To upload artifact to maven central use: :uploadArchives (you'd need to have the permission to do that)
- def isReleaseBuild() {
- return VERSION_NAME.contains("SNAPSHOT") == false
- }
- def getRepositoryUrl() {
- return project.findProperty("repositoryUrl") ?: "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
- }
- def getRepositoryUsername() {
- return project.findProperty("repositoryUsername") ?: ""
- }
- def getRepositoryPassword() {
- return project.findProperty("repositoryPassword") ?: ""
- }
- def configureReactNativePom(def pom) {
- pom.project {
- name(POM_NAME)
- artifactId(POM_ARTIFACT_ID)
- packaging(POM_PACKAGING)
- description("A framework for building native apps with React")
- url("https://github.com/facebook/react-native")
- 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")
- }
- licenses {
- license {
- name("MIT License")
- url("https://github.com/facebook/react-native/blob/master/LICENSE")
- distribution("repo")
- }
- }
- developers {
- developer {
- id("facebook")
- name("Facebook")
- }
- }
- }
- }
- if (JavaVersion.current().isJava8Compatible()) {
- allprojects {
- tasks.withType(Javadoc) {
- options.addStringOption("Xdoclint:none", "-quiet")
- }
- }
- }
- afterEvaluate { project ->
- task androidJavadoc(type: Javadoc) {
- source = android.sourceSets.main.java.srcDirs
- classpath += files(android.bootClasspath)
- classpath += files(project.getConfigurations().getByName("compile").asList())
- include("**/*.java")
- exclude("**/ReactBuildConfig.java")
- }
- task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
- classifier = "javadoc"
- from(androidJavadoc.destinationDir)
- }
- task androidSourcesJar(type: Jar) {
- classifier = "sources"
- from(android.sourceSets.main.java.srcDirs)
- include("**/*.java")
- }
- android.libraryVariants.all { variant ->
- def name = variant.name.capitalize()
- task "jar${name}"(type: Jar, dependsOn: variant.javaCompileProvider.get()) {
- from(variant.javaCompileProvider.get().destinationDir)
- }
- }
- artifacts {
- archives(androidSourcesJar)
- archives(androidJavadocJar)
- }
- version = VERSION_NAME
- group = GROUP
- signing {
- required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
- sign(configurations.archives)
- }
- uploadArchives {
- configuration = configurations.archives
- repositories.mavenDeployer {
- beforeDeployment {
- MavenDeployment deployment -> signing.signPom(deployment)
- }
- repository(url: getRepositoryUrl()) {
- authentication(
- userName: getRepositoryUsername(),
- password: getRepositoryPassword())
- }
- configureReactNativePom(pom)
- }
- }
- task installArchives(type: Upload) {
- configuration = configurations.archives
- repositories.mavenDeployer {
- // Deploy to react-native/android, ready to publish to npm
- repository(url: AAR_OUTPUT_URL)
- configureReactNativePom(pom)
- }
- }
- }
|