2017-06-19 62 views
1

我想生成一個jar使用bazel生成將使用節儉文件。 當我運行bazel構建時,它創建了一個具有節儉自動生成代碼的jar。但是我想在bazel構建時將一些java文件(客戶端代碼--main類,一個java類)包含到該jar文件中。 下面是節儉文件如何添加依賴關係的Java文件,同時生成與節儉文件Bazel生成

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因爲沒有屬性MAIN_CLASS高清thrift_java_library在genthrift.bzl

感謝,

+0

你使用什麼節儉規則? – mhlopko

+0

我正在使用thrift_java_library,生成的jar文件只包含節儉自動生成的代碼。我想包括我的java文件作爲jar文件的一部分 –

+0

這些? https://github.com/wt/bazel_thrift – mhlopko

回答

0

創建使用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來獲得所有的細節。

相關問題