diff --git a/internal/handler/maven.go b/internal/handler/maven.go index 3f1cd9d..850cec3 100644 --- a/internal/handler/maven.go +++ b/internal/handler/maven.go @@ -157,8 +157,12 @@ func (h *MavenHandler) parsePath(urlPath string) (group, artifact, version, file // isArtifactFile returns true if the filename looks like a Maven artifact. func (h *MavenHandler) isArtifactFile(filename string) bool { - // Common artifact extensions - extensions := []string{".jar", ".war", ".ear", ".pom", ".aar", ".klib", ".module"} + // Common artifact extensions, and the archives distributions such as + // apache-maven-{version}-bin.tar.gz are published as. + extensions := []string{ + ".jar", ".war", ".ear", ".pom", ".aar", ".klib", ".module", + ".zip", ".tar.gz", ".tgz", ".tar.bz2", ".tar.xz", + } for _, ext := range extensions { if strings.HasSuffix(filename, ext) { return true diff --git a/internal/handler/maven_test.go b/internal/handler/maven_test.go index 9ca5eb6..9331a00 100644 --- a/internal/handler/maven_test.go +++ b/internal/handler/maven_test.go @@ -55,8 +55,12 @@ func TestMavenIsArtifactFile(t *testing.T) { {"guava-32.1.3-jre.module", true}, {"app-1.0.war", true}, {"lib-1.0.aar", true}, + {"apache-maven-3.9.9-bin.tar.gz", true}, + {"apache-maven-3.9.9-bin.zip", true}, + {"maven-mvnd-1.0.6-linux-amd64.tgz", true}, {"maven-metadata.xml", false}, {"guava-32.1.3-jre.jar.sha1", false}, + {"apache-maven-3.9.9-bin.tar.gz.sha512", false}, } for _, tt := range tests {