Skip to content

Commit 5a78bc6

Browse files
authored
Make jvm_import use java from resolved toolchain instead of host machine. (#1058)
Fixes #895
1 parent 8f4b5f2 commit 5a78bc6

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

private/rules/jvm_import.bzl

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,22 @@ def _jvm_import_impl(ctx):
2323
workspace_name = visible_name,
2424
)
2525

26+
java_runtime = ctx.toolchains["@bazel_tools//tools/jdk:toolchain_type"].java.java_runtime
27+
add_jar_manifest_entry_jar = ctx.file._add_jar_manifest_entry
28+
2629
injar = ctx.files.jars[0]
2730
if ctx.attr._stamp_manifest[StampManifestProvider].stamp_enabled:
2831
outjar = ctx.actions.declare_file("processed_" + injar.basename, sibling = injar)
2932
args = ctx.actions.args()
33+
args.add_all(["-jar", add_jar_manifest_entry_jar])
3034
args.add_all(["--source", injar, "--output", outjar])
3135
args.add_all(["--manifest-entry", "Target-Label:{target_label}".format(target_label = label)])
3236
ctx.actions.run(
33-
executable = ctx.executable._add_jar_manifest_entry,
37+
executable = java_runtime.java_executable_exec_path,
3438
arguments = [args],
35-
inputs = [injar],
39+
inputs = [injar, add_jar_manifest_entry_jar],
3640
outputs = [outjar],
41+
tools = java_runtime.files,
3742
mnemonic = "StampJarManifest",
3843
progress_message = "Stamping the manifest of %s" % ctx.label,
3944
)
@@ -42,6 +47,7 @@ def _jvm_import_impl(ctx):
4247

4348
compilejar = ctx.actions.declare_file("header_" + injar.basename, sibling = injar)
4449
args = ctx.actions.args()
50+
args.add_all(["-jar", add_jar_manifest_entry_jar])
4551
args.add_all(["--source", outjar, "--output", compilejar])
4652

4753
# We need to remove the `Class-Path` entry since bazel 4.0.0 forces `javac`
@@ -56,10 +62,11 @@ def _jvm_import_impl(ctx):
5662
args.add("--make-safe")
5763

5864
ctx.actions.run(
59-
executable = ctx.executable._add_jar_manifest_entry,
65+
executable = java_runtime.java_executable_exec_path,
6066
arguments = [args],
61-
inputs = [outjar],
67+
inputs = [outjar, add_jar_manifest_entry_jar],
6268
outputs = [compilejar],
69+
tools = java_runtime.files,
6370
mnemonic = "CreateCompileJar",
6471
progress_message = "Creating compile jar for %s" % ctx.label,
6572
)
@@ -101,14 +108,15 @@ jvm_import = rule(
101108
default = False,
102109
),
103110
"_add_jar_manifest_entry": attr.label(
104-
executable = True,
111+
allow_single_file = True,
105112
cfg = "exec",
106-
default = "//private/tools/java/com/github/bazelbuild/rules_jvm_external/jar:AddJarManifestEntry",
113+
default = "//private/tools/java/com/github/bazelbuild/rules_jvm_external/jar:AddJarManifestEntry_deploy.jar",
107114
),
108115
"_stamp_manifest": attr.label(
109116
default = "@rules_jvm_external//settings:stamp_manifest",
110117
),
111118
},
112119
implementation = _jvm_import_impl,
113120
provides = [JavaInfo],
121+
toolchains = ["@bazel_tools//tools/jdk:toolchain_type"],
114122
)

0 commit comments

Comments
 (0)