Skip to content

Commit ff81f96

Browse files
Do not assign resources in uberjars
This introduces a fix where we don't assign resources to packages when we find multiple pom.xmls in a META-INF directory for a jar. Signed-off-by: Ayan Sinha Mahapatra <[email protected]>
1 parent 23def6c commit ff81f96

File tree

2 files changed

+51
-416
lines changed

2 files changed

+51
-416
lines changed

src/packagedcode/maven.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,21 @@ def assign_package_to_resources(cls, package, resource, codebase, package_adder)
132132
if resource.path.endswith(f'META-INF/maven/{package.namespace}/{package.name}/pom.xml'):
133133
# First case: a pom.xml inside a META-INF directory such as in
134134
# /META-INF/maven/log4j/log4j/pom.xml: This requires going up 5 times
135-
upward_segments = 5
135+
upward_segments = 4
136136
root = resource
137137
for _ in range(upward_segments):
138138
root = root.parent(codebase)
139+
140+
number_poms = 0
141+
for child in root.walk(codebase):
142+
if 'pom.xml' in child.path:
143+
number_poms += 1
144+
145+
if number_poms > 1:
146+
root = resource
147+
else:
148+
root = root.parent(codebase)
149+
139150
else:
140151
# Second case: a pom.xml at the root of codebase tree
141152
# FIXME: handle the cases opf parent POMs and nested POMs

0 commit comments

Comments
 (0)