Bazel使用针对ser / Deser的Jackson注释构建并生成Java类

时间:2018-07-26 15:15:44

标签: java jackson bazel annotation-processing

因此,由于我们拥有庞大的monorepo,因此我们一直在尝试将bazel作为我们组织的构建系统。 我面临的问题之一是,我们有一些代码生成类,这些类使用Jackson的注释处理器生成某些文件类型的不可变副本。

例如:

@JsonSerialze
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@Value.Immutable
@JsonDeserialize(as=ImmutableABC.class)
Public abstract class ABC {
...
}

因此,为此,我在此模块的bazel构建文件中包含一个java_plugin标记,如下所示:

Java_plugin(
        name="abcgen",
        srcs=["src/.../ABC.java"],
        Deps=[ {jackson-deps go here}],
        processor_class = "org.immutables.processor.ProxyProcessor",
)

这总是失败,表示找不到注释中引用的ImmutableABC.class文件。 有任何想法吗?我是否缺少Jackson注释的处理器类,并且是否可以包含多个处理器类?

1 个答案:

答案 0 :(得分:0)

对于任何面临此类问题的人,请确保您的插件的generates_api = 1,如果在库中使用了生成的类(对于杰克逊部分而言),那并不是问题所在