我有以下设置:
项目构建.gradle:
dependencies {
compile (project(':ProjectB'))
}
项目B 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
在正在实施 Parcelable 的 ProjectA 中
@AutoValue
public abstract class SomeClass implements Parcelable {
...
}
AutoValue 不会在 AutoValue_SomeClass 中生成任何与 Parcelable 相关的方法。
但是,如果我直接将 auto-value-parcel commentProcessor 包含到 ProjectA 中,问题就解决了。
项目构建.gradle:
dependencies {
compile (project(':projectB'))
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
}
谁能解释一下如何auto-value-parcel
annotationProcessor 被排除在 ProjectS 之外吗?
annotationProcessor
依赖项不会导出到其他项目。此外,这些不随库一起导出。
AutoValue 本身可以工作,因为您用compile
依赖性。这也是你不应该做的事情。所以更好的依赖设置看起来像......
ProjectB
dependencies {
provided "com.jakewharton.auto.value:auto-value-annotations:$autoValueVersion"
annotationProcessor "com.google.auto.value:auto-value:$autoValueVersion"
annotationProcessor "com.ryanharter.auto.value:auto-value-parcel:$autoValueParcelVersion"
}
ProjectA
dependencies {
compile project(':ProjectB')
provided "com.jakewharton.auto.value:auto-value-annotations:$autoValueVersion"
annotationProcessor "com.google.auto.value:auto-value:$autoValueVersion"
annotationProcessor "com.ryanharter.auto.value:auto-value-parcel:$autoValueParcelVersion"
}
但没有annotationProcessor
在所有项目上运行会更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)