【问题标题】:How to add dependency java files while generating Bazel build with Thrift file如何在使用 Thrift 文件生成 Bazel 构建时添加依赖项 java 文件
【发布时间】:2017-11-21 17:00:04
【问题描述】:

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

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

谢谢,

【问题讨论】:

  • 你使用什么节俭规则?
  • 我正在使用 thrift_java_library ,生成的 jar 文件只包含 thrift 自动生成的代码。我想将我的 java 文件包含在 jar 文件中
  • 我有一个java主类,我想把它包含到jar中

标签: java code-generation thrift bazel


【解决方案1】:

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

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以获取所有详细信息。

【讨论】:

    猜你喜欢
    • 2020-02-01
    • 2013-03-15
    • 2012-06-25
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 2018-02-01
    相关资源
    最近更新 更多