diff --git a/maven/lib/dependabot/maven/file_parser.rb b/maven/lib/dependabot/maven/file_parser.rb index 7b9e887209..722bd69f8f 100644 --- a/maven/lib/dependabot/maven/file_parser.rb +++ b/maven/lib/dependabot/maven/file_parser.rb @@ -88,6 +88,9 @@ def dependency_from_dependency_node(pom, dependency_node) return unless (name = dependency_name(dependency_node, pom)) return if internal_dependency_names.include?(name) + classifier = dependency_classifier(dependency_node, pom) + name = classifier ? "#{name}:#{classifier}" : name + build_dependency(pom, dependency_node, name) end @@ -125,7 +128,7 @@ def dependency_name(dependency_node, pom) return unless dependency_node.at_xpath("./groupId") return unless dependency_node.at_xpath("./artifactId") - name = [ + [ evaluated_value( dependency_node.at_xpath("./groupId").content.strip, pom @@ -135,15 +138,15 @@ def dependency_name(dependency_node, pom) pom ) ].join(":") + end - if dependency_node.at_xpath("./classifier") - name += ":#{evaluated_value( - dependency_node.at_xpath('./classifier').content.strip, - pom - )}" - end + def dependency_classifier(dependency_node, pom) + return unless dependency_node.at_xpath("./classifier") - name + evaluated_value( + dependency_node.at_xpath("./classifier").content.strip, + pom + ) end def plugin_name(dependency_node, pom) diff --git a/maven/spec/fixtures/poms/multimodule_pom.xml b/maven/spec/fixtures/poms/multimodule_pom.xml index 9134ac1934..b3ca2294cd 100644 --- a/maven/spec/fixtures/poms/multimodule_pom.xml +++ b/maven/spec/fixtures/poms/multimodule_pom.xml @@ -49,6 +49,12 @@ util ${project.version} + + net.evenh.multimodule + util + ${project.version} + sources +