Android Gradle annotationProcessor 在父模块中不可用
Android Gradle annotationProcessor not available in parent module
我有以下设置:
项目 A build.gralde:
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"
}
并且 SomeClass
在 ProjectA 中实现了 Parcelable
@AutoValue
public abstract class SomeClass implements Parcelable {
...
}
AutoValue 不会在 AutoValue_SomeClass.
中生成任何 Parcelable 相关方法
但是,如果我直接将 auto-value-parcel annotationProcessor 添加到 ProjectA,问题就解决了。
项目 A build.gralde:
dependencies {
compile (project(':projectB'))
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
}
谁能解释一下 auto-value-parcel
annotationProcessor 是如何从 ProjectA 中排除的?
annotationProcessor
依赖不导出到其他项目。此外,这些不会与库一起导出。
AutoValue 本身有效,因为您使用 compile
依赖项定义了它。这也是你不应该做的事情。所以更好的依赖设置看起来像...
项目B
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"
}
项目A
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
运行 会更好。
我有以下设置:
项目 A build.gralde:
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"
}
并且 SomeClass
在 ProjectA 中实现了 Parcelable
@AutoValue
public abstract class SomeClass implements Parcelable {
...
}
AutoValue 不会在 AutoValue_SomeClass.
中生成任何 Parcelable 相关方法但是,如果我直接将 auto-value-parcel annotationProcessor 添加到 ProjectA,问题就解决了。
项目 A build.gralde:
dependencies {
compile (project(':projectB'))
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
}
谁能解释一下 auto-value-parcel
annotationProcessor 是如何从 ProjectA 中排除的?
annotationProcessor
依赖不导出到其他项目。此外,这些不会与库一起导出。
AutoValue 本身有效,因为您使用 compile
依赖项定义了它。这也是你不应该做的事情。所以更好的依赖设置看起来像...
项目B
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"
}
项目A
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
运行 会更好。