From 3e8a2304e89adb0909223548b339d927b93977a0 Mon Sep 17 00:00:00 2001 From: Colm O hEigeartaigh Date: Wed, 15 Nov 2023 15:04:31 +0000 Subject: [PATCH] Refine license searching from groupIDFromJavaMetadata to allow for having the artfactId in the groupId (#2313) Signed-off-by: Colm O hEigeartaigh --- syft/pkg/cataloger/java/archive_parser.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/syft/pkg/cataloger/java/archive_parser.go b/syft/pkg/cataloger/java/archive_parser.go index 1d418cb28..5b1696142 100644 --- a/syft/pkg/cataloger/java/archive_parser.go +++ b/syft/pkg/cataloger/java/archive_parser.go @@ -268,6 +268,16 @@ func findLicenseFromJavaMetadata(name string, manifest *pkg.JavaManifest, versio log.Tracef("unable to get parent pom from Maven central: %v", err) } + if len(pomLicenses) == 0 { + // Try removing the last part of the groupId, as sometimes it duplicates the artifactId + packages := strings.Split(groupID, ".") + groupID = strings.Join(packages[:len(packages)-1], ".") + pomLicenses, err = recursivelyFindLicensesFromParentPom(groupID, name, version, j.cfg) + if err != nil { + log.Tracef("unable to get parent pom from Maven central: %v", err) + } + } + if len(pomLicenses) > 0 { pkgLicenses := pkg.NewLicensesFromLocation(j.location, pomLicenses...) if pkgLicenses != nil {