有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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"
)

我想生成的是一种定义版本的方法,例如1.2.3,它将自动生成文件hello-world-1.2.3.jar,类似于Maven或Gradle等其他构建工具。如issue-1291所示,此功能似乎不是Bazel中的内置功能

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


共 (1) 个答案

  1. # 1 楼答案

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

    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