Управление версиями для двоичных файлов Java - PullRequest
1 голос
/ 15 июня 2019

Я хочу автоматически присоединить номер версии к двоичному файлу Java, созданному Bazel.С помощью следующего кода я могу сгенерировать файл 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.Эта функциональность, кажется, не является встроенной функцией в Bazel, как указано Issue-1291 .

Каков идиоматический способ реализации описанного варианта использования?

1 Ответ

1 голос
/ 17 июня 2019

Текущий идиоматический подход к переименованию файлов в 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.

...