Support embedding stamping info from bazel in `java_single_jar`

A new attribute `stamp` controls the Bazel build info included in the output:
   - `stamp = 1`: Always embed Bazel build information, even in `--nostamp` builds.
   - `stamp = 0`: Embed Bazel build information with constant values even in `--stamp` builds.
   - `stamp = -1`: Embedding of Bazel build information is controlled by the `--[no]stamp` flag.

The above only takes effect when `exclude_build_data = False` (default is `True`). It is an error to specify `stamp = 1` without `exclude_build_data = False`.

Fixes https://github.com/bazelbuild/rules_java/issues/352

PiperOrigin-RevId: 881412734
Change-Id: I876b3a3b328eb363ad112dfc0fdfe599de03b164
9 files changed
tree: 1adc48eb5621335eee4aae5d8c1b1c6c8d328385
  1. .bazel_checkout/
  2. .bazelci/
  3. .bcr/
  4. .github/
  5. distro/
  6. examples/
  7. java/
  8. test/
  9. third_party/
  10. toolchains/
  11. .bazelignore
  12. .bazelrc
  13. .gitignore
  14. AUTHORS
  15. BUILD
  16. CODEOWNERS
  17. CONTRIBUTING.md
  18. LICENSE
  19. MODULE.bazel
  20. README.md
  21. renovate.json
  22. WORKSPACE
  23. WORKSPACE.bzlmod
README.md

rules_java

Build status

Java Rules for Bazel https://bazel.build.

Documentation

For a quickstart tutorial, see https://bazel.build/start/java

The fastest way to try this in an empty project is to click the green “Use this template” button on https://github.com/bazel-starters/java.

For slightly more advanced usage, like setting up toolchains or writing your own java-like rules, see https://bazel.build/docs/bazel-and-java

Core Java rules

Add a load like:

load("@rules_java//java:java_library.bzl", "java_library")

to your BUILD / BUILD.bazel / *.bzl files

For detailed docs on the core rules, see https://bazel.build/reference/be/java