Skip to content

Commit

Permalink
phase_merge_jars: add separate merged output jars for external and in…
Browse files Browse the repository at this point in the history
…ternal dependencies

*_external_deps_component.jar includes all external dependencies merged.
*_internal_deps_component.jar includes all internal dependencies merged
(excluding the current app jar).
  • Loading branch information
gergelyfabian committed Jun 3, 2022
1 parent 3446869 commit 0cd31de
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
2 changes: 2 additions & 0 deletions scala/private/common_outputs.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
common_outputs = {
"jar": "%{name}.jar",
"deploy_jar": "%{name}_deploy.jar",
"external_deps_component_jar": "%{name}_external_deps_component.jar",
"internal_deps_component_jar": "%{name}_internal_deps_component.jar",
"manifest": "%{name}_MANIFEST.MF",
"statsfile": "%{name}.statsfile",
"diagnosticsfile": "%{name}.diagnosticsproto",
Expand Down
15 changes: 15 additions & 0 deletions scala/private/phases/phase_merge_jars.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,23 @@ def merge_jars_to_output(ctx, output, jars):

def phase_merge_jars(ctx, p):
deploy_jar = ctx.outputs.deploy_jar
external_deps_component_jar = ctx.outputs.external_deps_component_jar
internal_deps_component_jar = ctx.outputs.internal_deps_component_jar

runtime_jars = p.compile.rjars
internal_jars = []
external_jars = []
for jar in runtime_jars.to_list():
if jar.short_path.startswith("../"):
# External dependencies go here:
external_jars.append(jar)
elif jar != ctx.outputs.jar:
# Internal dependencies go here (except the currently built thin jar):
internal_jars.append(jar)

merge_jars_to_output(ctx, deploy_jar, runtime_jars)
merge_jars_to_output(ctx, external_deps_component_jar, external_jars)
merge_jars_to_output(ctx, internal_deps_component_jar, internal_jars)

def _fileToPath(file):
return file.path

0 comments on commit 0cd31de

Please sign in to comment.