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 plugin
withinext.postBuildExtras
block, other plugins can have the opportunity to provide their ownplay-services
dependency overrides within their ownbuild-extras.gradle
.Providing a
build-extras.gradle
allows one's Cordova app to have the final word onplay-services
dependencies 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.gradle
goes like this:Step 1. In your application's
config.xml
, define a<hook />
scriptconfig.xml
Step 2. Create file
scripts/android/copyGradleBuildExtras.js
scripts/android/copyBuildExtras.js
Step 3. Define your custom
scripts/android/build-extras.gradle
overridesThis file allows your app to have the last word on any gradle dependencies -- no more need to fork plugins to "pin"
play-services
version. (insert your own desiredplay-services
version, 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.gradle
I implemented this method by following the Cordova Guide Setting Gradle Properties