I'm having the following setup:
ProjectA build.gralde:
dependencies {
compile (project(':ProjectB'))
}
ProjectB build.gradle:
dependencies {
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
compile "com.google.auto.value:auto-value:1.3"
annotationProcessor "com.google.auto.value:auto-value:1.3"
}
And SomeClass
in ProjectA that is implementing Parcelable
@AutoValue
public abstract class SomeClass implements Parcelable {
...
}
AutoValue won't generate any Parcelable related methods in AutoValue_SomeClass.
However, if I include auto-value-parcel annotationProcessor directly to ProjectA, the problem is resolved.
ProjectA build.gralde:
dependencies {
compile (project(':projectB'))
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
}
Can anyone explain how auto-value-parcel
annotationProcessor is being excluded from ProjectA?
annotationProcessor
dependencies are not exported to other projects. Also these are not exported with libraries.AutoValue itself works, because you defined it with a
compile
dependency. This is something you should not do either. So an better dependency setup would look like...ProjectB
ProjectA
But not having
annotationProcessor
run on all projects would be even better.