@@ -23,17 +23,22 @@ def _jvm_import_impl(ctx):
23
23
workspace_name = visible_name ,
24
24
)
25
25
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
+
26
29
injar = ctx .files .jars [0 ]
27
30
if ctx .attr ._stamp_manifest [StampManifestProvider ].stamp_enabled :
28
31
outjar = ctx .actions .declare_file ("processed_" + injar .basename , sibling = injar )
29
32
args = ctx .actions .args ()
33
+ args .add_all (["-jar" , add_jar_manifest_entry_jar ])
30
34
args .add_all (["--source" , injar , "--output" , outjar ])
31
35
args .add_all (["--manifest-entry" , "Target-Label:{target_label}" .format (target_label = label )])
32
36
ctx .actions .run (
33
- executable = ctx . executable . _add_jar_manifest_entry ,
37
+ executable = java_runtime . java_executable_exec_path ,
34
38
arguments = [args ],
35
- inputs = [injar ],
39
+ inputs = [injar , add_jar_manifest_entry_jar ],
36
40
outputs = [outjar ],
41
+ tools = java_runtime .files ,
37
42
mnemonic = "StampJarManifest" ,
38
43
progress_message = "Stamping the manifest of %s" % ctx .label ,
39
44
)
@@ -42,6 +47,7 @@ def _jvm_import_impl(ctx):
42
47
43
48
compilejar = ctx .actions .declare_file ("header_" + injar .basename , sibling = injar )
44
49
args = ctx .actions .args ()
50
+ args .add_all (["-jar" , add_jar_manifest_entry_jar ])
45
51
args .add_all (["--source" , outjar , "--output" , compilejar ])
46
52
47
53
# We need to remove the `Class-Path` entry since bazel 4.0.0 forces `javac`
@@ -56,10 +62,11 @@ def _jvm_import_impl(ctx):
56
62
args .add ("--make-safe" )
57
63
58
64
ctx .actions .run (
59
- executable = ctx . executable . _add_jar_manifest_entry ,
65
+ executable = java_runtime . java_executable_exec_path ,
60
66
arguments = [args ],
61
- inputs = [outjar ],
67
+ inputs = [outjar , add_jar_manifest_entry_jar ],
62
68
outputs = [compilejar ],
69
+ tools = java_runtime .files ,
63
70
mnemonic = "CreateCompileJar" ,
64
71
progress_message = "Creating compile jar for %s" % ctx .label ,
65
72
)
@@ -101,14 +108,15 @@ jvm_import = rule(
101
108
default = False ,
102
109
),
103
110
"_add_jar_manifest_entry" : attr .label (
104
- executable = True ,
111
+ allow_single_file = True ,
105
112
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 " ,
107
114
),
108
115
"_stamp_manifest" : attr .label (
109
116
default = "@rules_jvm_external//settings:stamp_manifest" ,
110
117
),
111
118
},
112
119
implementation = _jvm_import_impl ,
113
120
provides = [JavaInfo ],
121
+ toolchains = ["@bazel_tools//tools/jdk:toolchain_type" ],
114
122
)
0 commit comments