blob: f68a9cf244bf94104259a2b383a0cc6666a43c99 [file] [log] [blame]
{namespace java_binary}
/***/
{template .soyweb}
{call buck.page}
{param title: 'java_binary()' /}
{param prettify: true /}
{param content}
{call buck.rule}
{param overview}
A <code>java_binary()</code> rule is used to create a JAR file of the
compiled .class files and resources of the <code>java_library()</code>
{sp}rules on which it depends.
{/param}
{param args}
{call buck.arg}
{param name: 'name' /}
{param desc}
The name of the rule, as well as the name of the generated JAR file.
{/param}
{/call}
{call buck.arg}
{param name: 'deps' /}
{param default : '[]' /}
{param desc}
Rules (normally of type <code>java_library</code>) that should be
compiled and whose <code>.class</code> files and resources should be
included in the generated JAR file.
{/param}
{/call}
{call buck.arg}
{param name: 'main_class' /}
{param default: 'None' /}
{param desc}
If provided, this will be the value specified as the
{sp}<code>Main-Class</code> attribute of the <code>META-INF/MANIFEST.MF</code>
{sp}file in the generated JAR file. Also, when this rule is used as
an executable in a <a href="genrule.html"><code>genrule()</code></a>,
{sp}<code>main_class</code> will indicate the class whose <code>main()</code>
method will be invoked to process the command-line arguments. This
is consistent with the expected usage of <code>java -jar
<em>&lt;name.jar></em> <em>&lt;args></em></code>.
{/param}
{/call}
{call buck.arg}
{param name: 'manifest_file' /}
{param default: 'None' /}
{param desc}
If provided, this manifest will be used when generating the JAR
file. If combined with <code>main_class</code>, the specified manifest
file will be used but the <code>main_class</code> will override the main
class in the manifest.
{/param}
{/call}
{call buck.visibility_arg /}
{/param} // close args
{/call} // close buck.rule
{/param}
{/call}
{/template}