如何使用Thrift文件生成Bazel构建时添加依赖java文件

时间:2017-06-19 12:56:13

标签: java code-generation thrift bazel

我正在尝试使用bazel build生成一个jar,它将使用thrift文件。 当我运行bazel build时,它正在创建一个带有thrift自动生成代码的jar。但我希望在bazel构建时将一些java文件(客户端代码 - 主类,一个java类)包含在该jar中。 以下是节俭文件

package(default_visibility = ["//visibility:public"])
load("//tools/bzl:genthrift.bzl", "thrift_java_library")
thrift_java_library(
   name = "thriftbazelclient",
   srcs = ["spell.thrift"],

)

如何添加main_class和deps?

没有使用main_class,因为genthrift.bzl中没有属性main_class def thrift_java_library

谢谢,

1 个答案:

答案 0 :(得分:0)

使用取决于thrift库的java_binary创建一个新目标,例如:

java_binary(
    name = "my_thrift",
    srcs = glob(["src/*.java"]),
    main_class = "com.example.MyThrift",
    deps = [ ":thriftbazelclient" ],
)

构建一个部署jar(包含所有传递依赖的jar),例如:

bazel build //:my_thrift_deploy.jar

您可以按照Bazel Java Tutorial获取所有详细信息。