Java二进制版本控制

时间:2019-06-14 23:14:11

标签: java bazel

我希望自动将版本号附加到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>

实现所描述用例的惯用方式是什么?

1 个答案:

答案 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