rharter / auto-value-parcel

An Android Parcelable extension for Google's AutoValue.
Apache License 2.0
655 stars 64 forks source link

Update and shade dependencies #123

Closed bryanstern closed 7 years ago

bryanstern commented 7 years ago

Current Auto-Value-Parcel leaks dependencies which causes issues with other extensions. Specifically, it leaks AutoValue 1.3, which was causing issues when using this with the AutoValue builder extensions work I had done.

I took the opportunity to update Gradle to make use of the new dependency configurations and updated dependencies to their latest versions as well.

JakeWharton commented 7 years ago

There's no shading going on here. api vs. implement only have an effect inside a project for compilation avoidance. In the exported pom you'll still get these as "compile" dependencies.

bryanstern commented 7 years ago

Maybe I'm using the wrong terminology here, but my understanding is that api will reveal that dependency to consumers of the library where implementation will not.

The api configuration should be used to declare dependencies which are exported by the library API, whereas the implementation configuration should be used to declare dependencies which are internal to the component.

https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_separation

JakeWharton commented 7 years ago

Yes, consumers in the same project (i.e., in this repo). Not consumers pulling the artifact from Maven central.

bryanstern commented 7 years ago

That doesn't seem to match my experience consuming this change via jitpack. Will look into this further.

JakeWharton commented 7 years ago

If that's the case then dependencies are simply being left out of the pom which will be incorrect.

bryanstern commented 7 years ago

I'm going to close this out. Turns out the transitive dependency issues were in my project rather than this one.