I am using the latest Android Studio 3.0.0-beta6 to build my Android project and there\'s this dependency issue.
Gradle
encouraged me to replace all compile\'
Old question, but it sounds to me like what you're after is simply to use api
instead of implementation
in your gradle files?
If a module X declares an api
dependency, it's transitively available to any other module that depends on X. If it however declares an implementation
dependency, the classes from that dependency is put on the class path for module X, but not for any modules in turn depending on module X.
From Gradle's documentation:
Dependencies appearing in the api configurations will be transitively exposed to consumers of the library, and as such will appear on the compile classpath of consumers. Dependencies found in the implementation configuration will, on the other hand, not be exposed to consumers, and therefore not leak into the consumers' compile classpath.
So to be concrete:
module 1:
dependencies {
....
api 'io.reactivex.rxjava2:rxandroid:2.0.1'
api 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
...
}
module 2:
implementation project(':module1')
Isn't this the simplest solution to what you're trying to do?