我希望自动将版本号附加到Bazel构建的Java二进制文件中。使用以下代码,我只能在运行hello-world.jar
时生成文件bazel build //:hello-world
。
java_binary(
name = "hello-world",
srcs = glob(["src/main/java/com/bmuschko/**/*.java"]),
main_class = "com.bmuschko.HelloWorld"
)
我想产生的是一种定义版本的方法,例如1.2.3会自动生成文件hello-world-1.2.3.jar
,类似于其他构建工具(如Maven或Gradle)。如issue-1291所示,此功能似乎不是Bazel的内置功能。</ p>
实现所描述用例的惯用方式是什么?
答案 0 :(得分:1)
在Bazel中重命名文件的当前惯用方法是使用简单的规则:
VERSION = "1.2.3"
genrule(
name = "versioned_hello_world",
srcs = [":hello-world.jar"],
outs = [":hello-world-%s.jar" % VERSION],
cmd = "cp $< $@",
)
要构建,请运行$ bazel build :versioned_hello_world
或$ bazel build :hello-world-1.2.3.jar
。