@@ -117,8 +117,7 @@ def _jar_app_layer_impl(ctx):
117117 '-cp' ,
118118 # Support optionally passing the classpath as a file.
119119 '@' + classpath_path if ctx .attr ._classpath_as_file else classpath ,
120- ctx .attr .main_class
121- ]
120+ ] + ctx .attr .jvm_flags + [ctx .attr .main_class ]
122121
123122 file_map = {
124123 layer_file_path (ctx , f ): f
@@ -141,6 +140,7 @@ _jar_app_layer = rule(
141140 # The rest of the dependencies.
142141 "deps" : attr .label_list (),
143142 "runtime_deps" : attr .label_list (),
143+ "jvm_flags" : attr .string_list (),
144144 # The base image on which to overlay the dependency layers.
145145 "base" : attr .label (mandatory = True ),
146146 # The main class to invoke on startup.
@@ -161,7 +161,8 @@ _jar_app_layer = rule(
161161)
162162
163163def java_image (name , base = None , main_class = None ,
164- deps = [], runtime_deps = [], layers = [], ** kwargs ):
164+ deps = [], runtime_deps = [], layers = [], jvm_flags = [],
165+ ** kwargs ):
165166 """Builds a Docker image overlaying the java_binary.
166167
167168 Args:
@@ -177,7 +178,7 @@ def java_image(name, base=None, main_class=None,
177178 # not allowed to pass deps (even []) if there is no srcs
178179 # kwarg.
179180 deps = (deps + layers ) or None , runtime_deps = runtime_deps ,
180- ** kwargs )
181+ jvm_flags = jvm_flags , ** kwargs )
181182
182183 index = 0
183184 base = base or "@java_image_base//image"
@@ -188,7 +189,7 @@ def java_image(name, base=None, main_class=None,
188189 index += 1
189190
190191 _jar_app_layer (name = name , base = base , binary = binary_name ,
191- main_class = main_class ,
192+ main_class = main_class , jvm_flags = jvm_flags ,
192193 deps = deps , runtime_deps = runtime_deps , layers = layers )
193194
194195def _war_dep_layer_impl (ctx ):
0 commit comments