com_clementguillot_rules_quarkus 0.7.0Latest published <1h ago
MODULE.bazel
bazel_dep(name = "com_clementguillot_rules_quarkus", version = "0.7.0")
README

Bazel Rules for Quarkus

CI Release

Bazel rules for building and running Quarkus applications. Supports quarkus_app (Fast JAR, Uber JAR, mutable JAR, legacy JAR, AOT JAR, and native executables), hermetic build-time configuration, extension-driven Java code generation, dev mode with hot-reload, quarkus_test (@QuarkusTest), quarkus_integration_test (@QuarkusIntegrationTest), and quarkus_extension_runtime (building, using, and publishing custom Quarkus extensions — see Building Quarkus Extensions and examples/demo_extension).

Installation

See install instructions on the release page.

Add to your MODULE.bazel:

bazel_dep(name = "com_clementguillot_rules_quarkus", version = "<VERSION>")

Usage

load(
    "@rules_quarkus//quarkus:defs.bzl",
    "quarkus_app",
    "quarkus_integration_test",
    "quarkus_java_library",
    "quarkus_test",
)

quarkus_java_library(
    name = "lib",
    srcs = glob(["src/main/java/**/*.java"]),
    codegen_srcs = glob(["src/main/proto/**/*.proto"]),
    deps = [
        "@maven//:com_google_protobuf_protobuf_java",
        "@maven//:io_quarkus_quarkus_grpc",
    ],
)

quarkus_app(
    name = "app",
    continuous_test = ":test",
    package_type = "fast-jar",  # default; see docs for every JVM layout
    version = "1.0.0-SNAPSHOT",
    deps = [":lib"],
)

quarkus_test(
    name = "test",
    deps = [":test_lib"],
)

quarkus_integration_test(
    name = "integration_test",
    app = ":app",
    deps = [":test_lib"],
)
bazel run //:app       # Production mode
bazel run //:app_dev   # Dev mode (hot-reload + Dev UI continuous testing)
bazel run //:app_test  # Console-only continuous testing
bazel test //:test     # @QuarkusTest
bazel test //:integration_test # @QuarkusIntegrationTest against the selected package
bazel coverage //:test # Bazel LCOV coverage

Integration tests included in a broader bazel coverage command run uninstrumented and do not prevent supported quarkus_test targets from producing LCOV.

See the Getting Started guide for full setup instructions.

Supported Versions

  • Quarkus: 3.27.4 (LTS) or 3.33.2 (LTS)
  • Bazel: 7+, 8+, or 9+
  • Java: 17+
  • Mode: Bzlmod only (WORKSPACE not supported)

Important: You must use one of the exact supported versions listed above (3.27.4 or 3.33.2). Quarkus bytecode generated during augmentation is tightly coupled to the exact patch version — even within the same minor, runtime incompatibilities can occur.

Documentation

License

See LICENSE.

About

Bazel rules for Quarkus framework (https://quarkus.io/).

@clementguillot/rules_quarkus@clementguillot

Languages

Java61.3%
Starlark31.1%
Python3.9%
Shell3.3%
Smarty0.2%
Go Template0.1%

Maintainers

@clementguillot

Versions

0.7.0 +1.0mo2026-09-29
0.6.0 +18d2026-08-28
0.5.3 +13d2026-08-10
0.5.2 +20h2026-07-28
0.5.1 +23h2026-07-27
0.5.0 +9d2026-07-26
0.4.4 +4d2026-07-17
0.4.3 +5d2026-07-13
0.4.2 +2d2026-07-07
0.4.1 +3d2026-07-04
0.4.0 +13d2026-07-01
0.3.1 +7d2026-06-17
0.3.0 +6d2026-06-10
0.2.2 +22h2026-06-03
0.2.1 +3d2026-06-02
0.2.0 +5d2026-05-29
0.1.1 +3d2026-05-23
0.1.02026-05-19