Skip to content

Commit ab6e79d

Browse files
authored
Sync Maven rules to latest @graknlabs_bazel_distribution (#126)
1 parent 5865fb7 commit ab6e79d

File tree

1 file changed

+25
-13
lines changed

1 file changed

+25
-13
lines changed

distribution/maven/rules.bzl

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,9 @@ def _parse_maven_coordinates(coordinate_string):
168168

169169
def _generate_pom_xml(ctx, maven_coordinates):
170170
# Final 'pom.xml' is generated in 2 steps
171-
preprocessed_template = ctx.actions.declare_file("_pom.xml")
171+
preprocessed_template = ctx.actions.declare_file("_{}_pom.xml".format(ctx.attr.name))
172172

173-
pom_file = ctx.actions.declare_file("pom.xml")
173+
pom_file = ctx.actions.declare_file("{}_pom.xml".format(ctx.attr.name))
174174

175175
maven_pom_deps = ctx.attr.target[MavenPomInfo].maven_pom_deps
176176
deps_coordinates = depset(maven_pom_deps).to_list()
@@ -263,18 +263,23 @@ def _generate_pom_xml(ctx, maven_coordinates):
263263

264264
def _assemble_maven_impl(ctx):
265265
target = ctx.attr.target
266-
target_string = target[JavaLibInfo].target_coordinates.to_list()[0]
266+
target_string = target[JavaLibInfo].target_coordinates.to_list()[-1]
267267

268268
maven_coordinates = _parse_maven_coordinates(target_string)
269269

270270
pom_file = _generate_pom_xml(ctx, maven_coordinates)
271271

272272
# there is also .source_jar which produces '.srcjar'
273-
if hasattr(target, "java"):
274-
jar = target[JavaInfo].outputs.jars[0].class_jar
275-
srcjar = target[JavaInfo].outputs.jars[0].source_jar
276-
elif hasattr(target, "files"):
277-
jar = target.files.to_list()[0]
273+
srcjar = None
274+
275+
if hasattr(target, "files") and target.files.to_list() and target.files.to_list()[0].extension == 'jar':
276+
all_jars = target[JavaInfo].outputs.jars
277+
jar = all_jars[0].class_jar
278+
279+
for output in all_jars:
280+
if output.source_jar.basename.endswith('-src.jar'):
281+
srcjar = output.source_jar
282+
break
278283
else:
279284
fail("Could not find JAR file to deploy in {}".format(target))
280285

@@ -287,10 +292,16 @@ def _assemble_maven_impl(ctx):
287292
executable = ctx.executable._assemble_script,
288293
)
289294

290-
return [
291-
DefaultInfo(files = depset([output_jar, pom_file, srcjar])),
292-
MavenDeploymentInfo(jar = output_jar, pom = pom_file, srcjar = srcjar)
293-
]
295+
if srcjar == None:
296+
return [
297+
DefaultInfo(files = depset([output_jar, pom_file])),
298+
MavenDeploymentInfo(jar = output_jar, pom = pom_file)
299+
]
300+
else:
301+
return [
302+
DefaultInfo(files = depset([output_jar, pom_file, srcjar])),
303+
MavenDeploymentInfo(jar = output_jar, pom = pom_file, srcjar = srcjar)
304+
]
294305

295306
assemble_maven = rule(
296307
attrs = {
@@ -370,7 +381,7 @@ def _deploy_maven_impl(ctx):
370381

371382
lib_jar_link = "lib.jar"
372383
src_jar_link = "lib.srcjar"
373-
pom_xml_link = "pom.xml"
384+
pom_xml_link = ctx.attr.target[MavenDeploymentInfo].pom.basename
374385

375386
ctx.actions.expand_template(
376387
template = ctx.file._deployment_script,
@@ -403,6 +414,7 @@ _default_deployment_properties = None if 'deployment_properties_placeholder' in
403414
deploy_maven = rule(
404415
attrs = {
405416
"target": attr.label(
417+
mandatory = True,
406418
providers = [MavenDeploymentInfo],
407419
doc = "assemble_maven target to deploy"
408420
),

0 commit comments

Comments
 (0)