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
diff --git a/tools/bzl/maven_jar.bzl b/tools/bzl/maven_jar.bzl
index bf47370..2dbeae7 100644
--- a/tools/bzl/maven_jar.bzl
+++ b/tools/bzl/maven_jar.bzl
@@ -52,6 +52,18 @@
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 @@
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 @@
"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,