-
Notifications
You must be signed in to change notification settings - Fork 596
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add dependency vendoring support. #1821
Conversation
Coverage ReportAffected SDKs
Test Logs
NotesHTML coverage reports can be produced locally with Head commit (8dc0c0d3) is created by Prow via merging commits: 8c187fd 30db30b. |
/run binary-size |
Binary Size ReportAffected SDKs
Test Logs
NotesHead commit (8dc0c0d3) is created by Prow via merging commits: 8c187fd 30db30b. |
The `VendorPlugin`(applied with `id 'firebase-vendor'`) adds a dedicated `vendor` gradle configuration to the project, which can be used to include the dependencies in the output library. Such dependencies are are shaded under the library's package name to avoid symbol collisions. Example use: ```kotlin plugins { id("com.android.library") id("firebase-vendor") } android { // ... } dependencies { implementation("com.example:somelib:1.0") // this will make this library available at compile time as well as // will vendor it inside the produced aar under `com.mylib.com.example`. vendor("com.example:libtovendor:1.0") { // IMPORTANT: it the library (transitively) depends on any library that contains `javax` or `java` packages, it must be excluded here and added as a pom dependency below. exclude("javax.inject", "javax.inject") } implementation("javax.inject:javax.inject:1") } ```
/retest |
1 similar comment
/retest |
buildSrc/src/main/java/com/google/firebase/gradle/plugins/VendorPlugin.kt
Outdated
Show resolved
Hide resolved
buildSrc/src/main/java/com/google/firebase/gradle/plugins/VendorPlugin.kt
Outdated
Show resolved
Hide resolved
@vkryachko: The following test failed, say
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
The
VendorPlugin
(applied withid 'firebase-vendor'
) adds a dedicatedvendor
gradle configuration to the project, which can be used toinclude the dependencies in the output library. Such dependencies are
are shaded under the library's package name to avoid symbol collisions.
Example use: