mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
9eb23e741f
Summary:
A bunch of deps were missing when generating Javadoc, producing warnings. One issue was:
```
project.getConfigurations().getByName("compile").asList()
```
Seems to be deprecated (?), so this list is always empty. The mitigation is to create a new configuration that just inherits from `api()` dependencies, so that we can add them in Javadoc task.
The other problem (not solved in this commit), is that some deps are .aar files, which require some manual unpacking before they can be processed: https://stackoverflow.com/questions/35853906/how-to-generate-javadoc-for-android-library-when-it-has-dependencies-which-are-a
Note that this is separate fix from https://github.com/facebook/react-native/pull/30417
Changelog: [Internal]
Reviewed By: JoshuaGross
Differential Revision: D25041164
fbshipit-source-id: 2ee8b268c2d38e3ecbf622c05c3c56123b7a15a6
144 lines
4.0 KiB
Groovy
144 lines
4.0 KiB
Groovy
/*
|
|
* 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, dependsOn: generateReleaseBuildConfig) {
|
|
source = android.sourceSets.main.java.srcDirs
|
|
classpath += files(android.bootClasspath)
|
|
classpath += files("$buildDir/generated/source/buildConfig/release")
|
|
// Note: this doesn't handle .aar files, only .jar.
|
|
classpath += configurations.javadocDeps
|
|
include("**/*.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)
|
|
}
|
|
}
|
|
}
|