react-native/local-cli/templates/HelloWorld/android/build.gradle

40 lines
946 B
Groovy
Raw Normal View History

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
Consume Android artifacts from npm Summary: This lets us say goodbye to Maven Central. This will greatly simplify and speed up the release process as releasing Android artifacts to Maven Central adds a lot of [complexity](https://github.com/facebook/react-native/blob/master/Releases-publish.md) and delays the whole release by several hours when we have to wait for the artifacts to propagate. This diff assumes there's a local Maven repo at `node_modules/react-native/android`. The second part once this lands is to change our `release.sh` script to output the artifacts under `react-native/android` before publishing to npm. This adds 3.7MB to the size of `node_modules` of any app. However, we just download eagerly what we'd normally download later via Gradle. **Test plan** Released RN including a local Maven repo into Sinopia: $ cd react-native # Updated version in gradle.properties to 0.21.0 $ ./gradlew ReactAndroid:installArchives # Moved everything in .m2/repository/com/facebook/react to react-native/android $ ls react-native/android com/facebook/react/react-native/0.21.0/react-native-0.21.0.aar com/facebook/react/react-native/0.21.0/react-native-0.21.0.pom com/facebook/react/react-native/maven-metadata.xml ... # Set version in package.json to 0.21.0 $ npm set registry http://localhost:4873/ $ npm publish Created and ran an app: $ cd /tmp $ react-native init AndroidNpm $ cd AndroidNpm $ react-native run-android It worked. Checked that we're using the artifacts from node_modules/react-native/android: $ cd android $ ./gradlew app:dependencies compile - Classpath for compiling the main sources. +--- com.android.support:appcompat-v7:23.0.1 | \--- com.android.support:support-v4:23.0.1 | \--- com.android.support:support-annotations:23.0.1 \--- com.facebook.react:react-native:+ -> 0.21.0 +--- com.google.code.findbugs:jsr305:3.0.0 +--- com.facebook.stetho:stetho-okhttp:1.2.0 ... Checked that Android Studio can find the source jars (you can navigate to RN sources in Android Studio). Opened the new project as described in the [docs](https://facebook.github.io/react-native/docs/android-setup.html#editing-your-app-s-java-code-in-android-studio). public Reviewed By: bestander Differential Revision: D2912557 fb-gh-sync-id: 251c180518a3fb9bb8e80963b236e982d65533be shipit-source-id: 251c180518a3fb9bb8e80963b236e982d65533be
2016-02-09 14:36:30 +00:00
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
Consume Android artifacts from npm Summary: This lets us say goodbye to Maven Central. This will greatly simplify and speed up the release process as releasing Android artifacts to Maven Central adds a lot of [complexity](https://github.com/facebook/react-native/blob/master/Releases-publish.md) and delays the whole release by several hours when we have to wait for the artifacts to propagate. This diff assumes there's a local Maven repo at `node_modules/react-native/android`. The second part once this lands is to change our `release.sh` script to output the artifacts under `react-native/android` before publishing to npm. This adds 3.7MB to the size of `node_modules` of any app. However, we just download eagerly what we'd normally download later via Gradle. **Test plan** Released RN including a local Maven repo into Sinopia: $ cd react-native # Updated version in gradle.properties to 0.21.0 $ ./gradlew ReactAndroid:installArchives # Moved everything in .m2/repository/com/facebook/react to react-native/android $ ls react-native/android com/facebook/react/react-native/0.21.0/react-native-0.21.0.aar com/facebook/react/react-native/0.21.0/react-native-0.21.0.pom com/facebook/react/react-native/maven-metadata.xml ... # Set version in package.json to 0.21.0 $ npm set registry http://localhost:4873/ $ npm publish Created and ran an app: $ cd /tmp $ react-native init AndroidNpm $ cd AndroidNpm $ react-native run-android It worked. Checked that we're using the artifacts from node_modules/react-native/android: $ cd android $ ./gradlew app:dependencies compile - Classpath for compiling the main sources. +--- com.android.support:appcompat-v7:23.0.1 | \--- com.android.support:support-v4:23.0.1 | \--- com.android.support:support-annotations:23.0.1 \--- com.facebook.react:react-native:+ -> 0.21.0 +--- com.google.code.findbugs:jsr305:3.0.0 +--- com.facebook.stetho:stetho-okhttp:1.2.0 ... Checked that Android Studio can find the source jars (you can navigate to RN sources in Android Studio). Opened the new project as described in the [docs](https://facebook.github.io/react-native/docs/android-setup.html#editing-your-app-s-java-code-in-android-studio). public Reviewed By: bestander Differential Revision: D2912557 fb-gh-sync-id: 251c180518a3fb9bb8e80963b236e982d65533be shipit-source-id: 251c180518a3fb9bb8e80963b236e982d65533be
2016-02-09 14:36:30 +00:00
}
google()
}
}
ext {
buildToolsVersion = "27.0.3"
minSdkVersion = 16
compileSdkVersion = 27
targetSdkVersion = 26
supportLibVersion = "27.1.1"
}
task wrapper(type: Wrapper) {
gradleVersion = '4.4'
distributionUrl = distributionUrl.replace("bin", "all")
}