Skip to content

Commit 8fa02d9

Browse files
committed
Migrate to bzlmod for dependency management
Replace WORKSPACE-based dependency management with bzlmod (MODULE.bazel), following Bazel's modern dependency management approach. This migration aligns with Bazel 8+ best practices and prepares for the eventual deprecation of WORKSPACE in Bazel 9. Changes: - Create MODULE.bazel with all external dependencies - Migrate rules_license, bazel_skylib, rules_java, bazel_features - Migrate rules_jvm_external and Maven dependencies to bzlmod extensions - Update .bazelrc to enable bzlmod explicitly - Reduce WORKSPACE.bazel to minimal stub with reference to MODULE.bazel - Add MODULE.bazel.lock for reproducible builds - Suppress maven repository multi-module contribution warning All dependencies maintained at same versions: - rules_license 1.0.0 - bazel_skylib 1.8.2 - rules_java 8.16.1 - bazel_features 1.38.0 - rules_jvm_external 6.9 - Maven: guava 33.3.1-jre, jsr305 3.0.2 --- Prompt: ``` Good work creating this demo package. But since we're starting fresh, I'd like it to be using latest Bazel style: https://bazel.build/external/migration. Implement the migration to bzlmod ```
1 parent 6c1d461 commit 8fa02d9

4 files changed

Lines changed: 324 additions & 96 deletions

File tree

.bazelrc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
# Enable WORKSPACE for Bazel 8
2-
common --enable_workspace
1+
# Use bzlmod (default in Bazel 8+)
2+
# Note: bzlmod is enabled by default, this is just explicit
3+
common --enable_bzlmod

MODULE.bazel

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
module(
2+
name = "java_code_runner",
3+
version = "0.1.0",
4+
)
5+
6+
# Core Bazel dependencies
7+
bazel_dep(name = "rules_license", version = "1.0.0")
8+
bazel_dep(name = "bazel_skylib", version = "1.8.2")
9+
bazel_dep(name = "rules_java", version = "8.16.1")
10+
bazel_dep(name = "bazel_features", version = "1.38.0", repo_name = "bazel_features")
11+
12+
# Maven dependencies via rules_jvm_external
13+
bazel_dep(name = "rules_jvm_external", version = "6.9")
14+
15+
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
16+
maven.install(
17+
artifacts = [
18+
"com.google.guava:guava:33.3.1-jre",
19+
"com.google.code.findbugs:jsr305:3.0.2",
20+
],
21+
repositories = [
22+
"https://repo1.maven.org/maven2",
23+
],
24+
# Suppress warning about contributions from multiple modules
25+
known_contributing_modules = ["java_code_runner", "protobuf"],
26+
)
27+
use_repo(maven, "maven")

0 commit comments

Comments
 (0)