Java二进制文件的版本控制

Java二进制文件的版本控制,java,bazel,Java,Bazel,我希望自动将版本号附加到Bazel构建的Java二进制文件。使用以下代码,我只能在运行bazel build//:hello world时生成文件hello world.jar java_binary( name = "hello-world", srcs = glob(["src/main/java/com/bmuschko/**/*.java"]), main_class = "com.bmuschko.HelloWorld" ) 我想生成的是一种定义版本的方法,例

我希望自动将版本号附加到Bazel构建的Java二进制文件。使用以下代码,我只能在运行
bazel build//:hello world
时生成文件
hello world.jar

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等其他构建工具。如所示,此功能似乎不是Bazel中的内置功能


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

当前在Bazel中重命名文件的惯用方法是使用一个简单的genrule:

VERSION = "1.2.3"

genrule(
    name = "versioned_hello_world",
    srcs = [":hello-world.jar"],
    outs = [":hello-world-%s.jar" % VERSION],
    cmd = "cp $< $@",
)
VERSION=“1.2.3”
genrule(
name=“versioned\u hello\u world”,
srcs=[“:hello world.jar”],
outs=[“:hello world-%s.jar”%VERSION],
cmd=“cp$<$@”,
)
要构建,请运行
$bazel build:versioned\u hello\u world
$bazel build:hello-world-1.2.3.jar