apply plugin within ext.postBuildExtras block #358
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
By performing
apply pluginwithinext.postBuildExtrasblock, other plugins can have the opportunity to provide their ownplay-servicesdependency overrides within their ownbuild-extras.gradle.Providing a
build-extras.gradleallows one's Cordova app to have the final word onplay-servicesdependencies to resolve conflicts with other plugins.I am the author of one these plugins, cordova-background-geolocation-lt, which conflicts with
cordova-plugin-fcm.This method of providing your application's own custom
build-extras.gradlegoes like this:Step 1. In your application's
config.xml, define a<hook />scriptconfig.xmlStep 2. Create file
scripts/android/copyGradleBuildExtras.jsscripts/android/copyBuildExtras.jsStep 3. Define your custom
scripts/android/build-extras.gradleoverridesThis file allows your app to have the last word on any gradle dependencies -- no more need to fork plugins to "pin"
play-servicesversion. (insert your own desiredplay-servicesversion, I chose latest11.0.2, but you can choose to pin any desired version (the version must be the same for each dependency)scripts/android/build-extras.gradleI implemented this method by following the Cordova Guide Setting Gradle Properties