Handle overrides for fileless artifacts (#1625)
diff --git a/private/dependency_tree_parser.bzl b/private/dependency_tree_parser.bzl
index a8659e9..76d9cf6 100644
--- a/private/dependency_tree_parser.bzl
+++ b/private/dependency_tree_parser.bzl
@@ -529,6 +529,8 @@
all_imports.append(
"alias(\n\tname = \"%s\",\n\tactual = \"%s\",\n\tvisibility = %s,)" % (target_label, labels_to_override.get(target_label), visibility),
)
+ if artifact_path == None:
+ continue
if repository_ctx.attr.maven_install_json:
# Provide the downloaded artifact as a file target.
all_imports.append(_genrule_copy_artifact_from_http_file(artifact, default_visibilities))
diff --git a/tests/unit/dependency_tree_parser_test.bzl b/tests/unit/dependency_tree_parser_test.bzl
index 08408e4..e1c08ee 100644
--- a/tests/unit/dependency_tree_parser_test.bzl
+++ b/tests/unit/dependency_tree_parser_test.bzl
@@ -173,6 +173,32 @@
overridden_aar_original_artifact_uses_real_http_file_repo_test = unittest.make(_overridden_aar_original_artifact_uses_real_http_file_repo_impl)
+def _overridden_fileless_artifact_has_no_original_target_impl(ctx):
+ env = unittest.begin(ctx)
+
+ generated_imports = _generate_imports(
+ dependencies = [
+ {
+ "coordinates": "com.example:metadata:1.0",
+ "deps": [],
+ "file": None,
+ "urls": [],
+ },
+ ],
+ exclusions = {},
+ override_targets = {
+ "com.example:metadata": "//third_party:metadata",
+ },
+ maven_install_json = True,
+ )
+
+ asserts.true(env, "name = \"com_example_metadata\"," in generated_imports)
+ asserts.false(env, "original_com_example_metadata" in generated_imports)
+
+ return unittest.end(env)
+
+overridden_fileless_artifact_has_no_original_target_test = unittest.make(_overridden_fileless_artifact_has_no_original_target_impl)
+
def dependency_tree_parser_test_suite():
unittest.suite(
"dependency_tree_parser_tests",
@@ -180,4 +206,5 @@
wildcard_exclusion_removes_all_generated_deps_test,
pom_only_exclusion_removes_generated_export_test,
overridden_aar_original_artifact_uses_real_http_file_repo_test,
+ overridden_fileless_artifact_has_no_original_target_test,
)