maven_jar: Add support for exports and deps attributes
Expose deps and exports attribute from java_import to maven_jar rule. This was provided in Buck's maven_jar rule. The following maven_jar rules: maven_jar( name = "foo", artifact = "foo:foo:1.0", sha1 = "4d7e828a4651e2f590b4a059925991be58e62da6", deps = [ "@bar//jar", "@baz//jar", ], exports = [ "@qux//jar", "@quux//jar", ] expands to this java_import rule: java_import( name = 'jar', jars = ['foo-1.0.jar'], srcjar = 'foo-1.0-src.jar', deps = [ '@bar//jar', '@baz//jar', ], exports = [ '@qux//jar', '@quux//jar', ], ) Change-Id: I58cc5df9820240b24fc1b6cb261966f517c4891c
This commit is contained in:
parent
49df12cb7d
commit
6e5f8e619c
@ -52,6 +52,18 @@ def _create_coordinates(fully_qualified_name):
|
||||
version = version,
|
||||
)
|
||||
|
||||
def _format_deps(attr, deps):
|
||||
formatted_deps = ""
|
||||
if deps:
|
||||
if len(deps) == 1:
|
||||
formatted_deps += "%s = [\'%s\']," % (attr, deps[0])
|
||||
else:
|
||||
formatted_deps += "%s = [\n" % attr
|
||||
for dep in deps:
|
||||
formatted_deps += " \'%s\',\n" % dep
|
||||
formatted_deps += " ],"
|
||||
return formatted_deps
|
||||
|
||||
def _generate_build_file(ctx, binjar, srcjar):
|
||||
srcjar_attr = ""
|
||||
if srcjar:
|
||||
@ -61,17 +73,23 @@ def _generate_build_file(ctx, binjar, srcjar):
|
||||
package(default_visibility = ['//visibility:public'])
|
||||
java_import(
|
||||
name = 'jar',
|
||||
{srcjar_attr}
|
||||
jars = ['{binjar}'],
|
||||
{srcjar_attr}
|
||||
{deps}
|
||||
{exports}
|
||||
)
|
||||
java_import(
|
||||
name = 'neverlink',
|
||||
jars = ['{binjar}'],
|
||||
neverlink = 1,
|
||||
{deps}
|
||||
{exports}
|
||||
)
|
||||
\n""".format(srcjar_attr = srcjar_attr,
|
||||
rule_name = ctx.name,
|
||||
binjar = binjar)
|
||||
binjar = binjar,
|
||||
deps = _format_deps("deps", ctx.attr.deps),
|
||||
exports = _format_deps("exports", ctx.attr.exports))
|
||||
if srcjar:
|
||||
contents += """
|
||||
java_import(
|
||||
@ -135,6 +153,8 @@ maven_jar = repository_rule(
|
||||
"repository": attr.string(default = MAVEN_CENTRAL),
|
||||
"attach_source": attr.bool(default = True),
|
||||
"unsign": attr.bool(default = False),
|
||||
"deps": attr.string_list(),
|
||||
"exports": attr.string_list(),
|
||||
"exclude": attr.string_list(),
|
||||
},
|
||||
local = True,
|
||||
|
Loading…
Reference in New Issue
Block a user