From ae45b85cb34c42851b761c491a73d2964f58f2b1 Mon Sep 17 00:00:00 2001 From: Sasha Nikiforov Date: Fri, 23 Feb 2018 19:00:08 -0800 Subject: [PATCH] Update ReactAndroid build script to support gradle 2.3.0 Summary: We updated to Gradle 2.3.0 and our app's build failed. Our app doesn't provide "repositoryUrl" which is intended to be an optional gradle property. However, Gradle 2.3.0 blows up on findProperty('repositoryUrl') when "repositoryUrl" isn't provided: ```` * What went wrong: A problem occurred configuring project ':ContextMenuAndroid'. > Could not resolve all dependencies for configuration ':ContextMenuAndroid:_debugPublish'. > A problem occurred configuring project ':ReactAndroid'. > Could not get unknown property 'repositoryUrl' for project ':ReactAndroid' of type org.gradle.api.Project. ```` To fix this, we now use "project.hasProperty('repositoryUrl')" to safely detect the presence of the optional "repositoryUrl" property. Since I cannot check it with your build environment, I've created a small demo to show that "project.hasProperty" properly detects the presence of the gradle property "repositoryUrl". I edited "getRepositoryUrl" to throw an exception if "repositoryUrl" is set: ```` def getRepositoryUrl() { if (project.hasProperty('repositoryUrl')) throw new GradleException(property('repositoryUrl')) return project.hasProperty('repositoryUrl') ? property('repositoryUrl') : 'https://oss.sonatype.org/service/local/staging/deploy/maven2/' } ```` Then I ran gradle with "repositoryUrl" set like this (passing the property): ```` ./gradlew -PrepositoryUrl=blah assembleDebug ```` As expected, it detected that "repositoryUrl" was set and threw an exception: ```` * What went wrong: A problem occurred configuring project ':ContextMenuAndroid'. > Could not resolve all dependencies for configuration ':ContextMenuAndroid:_debugPublish'. > A problem occurred configuring project ':ReactAndroid'. > blah ```` The same issue has been reported before - #14811, #14810 Minor changes in the Android build script Closes https://github.com/facebook/react-native/pull/18075 Differential Revision: D7077788 Pulled By: hramos fbshipit-source-id: ecfbab29d0632e7eecb3c6a247df39bc7616653e --- ReactAndroid/release.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ReactAndroid/release.gradle b/ReactAndroid/release.gradle index 51e431a98e9a22..e2b8c37defbf66 100644 --- a/ReactAndroid/release.gradle +++ b/ReactAndroid/release.gradle @@ -12,15 +12,15 @@ def isReleaseBuild() { } def getRepositoryUrl() { - return hasProperty('repositoryUrl') ? property('repositoryUrl') : 'https://oss.sonatype.org/service/local/staging/deploy/maven2/' + return project.hasProperty('repositoryUrl') ? property('repositoryUrl') : 'https://oss.sonatype.org/service/local/staging/deploy/maven2/' } def getRepositoryUsername() { - return hasProperty('repositoryUsername') ? property('repositoryUsername') : '' + return project.hasProperty('repositoryUsername') ? property('repositoryUsername') : '' } def getRepositoryPassword() { - return hasProperty('repositoryPassword') ? property('repositoryPassword') : '' + return project.hasProperty('repositoryPassword') ? property('repositoryPassword') : '' } def configureReactNativePom(def pom) {