Skip to content

重复文件导致的ZipException #4

@Itsusinn

Description

@Itsusinn

当依赖中有相同文件时,会产生ZipException
当重复文件是class文件时

Caused by: java.util.zip.ZipException: duplicate entry: module-info.class
	at java_util_jar_JarOutputStream$putNextEntry.call(Unknown Source)
	at io.izzel.taboolib.gradle.RelocateJar$_relocate_closure2$_closure8$_closure9$_closure10.doCall(RelocateJar.groovy:65)
	at jdk.internal.reflect.GeneratedMethodAccessor519.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at jdk.internal.reflect.GeneratedMethodAccessor517.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at io.izzel.taboolib.gradle.RelocateJar$_relocate_closure2$_closure8$_closure9.doCall(RelocateJar.groovy:56)
	at jdk.internal.reflect.GeneratedMethodAccessor518.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at io.izzel.taboolib.gradle.RelocateJar$_relocate_closure2$_closure8.doCall(RelocateJar.groovy:55)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at jdk.internal.reflect.GeneratedMethodAccessor517.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at io.izzel.taboolib.gradle.RelocateJar$_relocate_closure2.doCall(RelocateJar.groovy:54)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at jdk.internal.reflect.GeneratedMethodAccessor517.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at io.izzel.taboolib.gradle.RelocateJar.relocate(RelocateJar.groovy:51)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)

out.putNextEntry(new JarEntry(remapper.map(jarEntry.name)))

这种情况通常是由于依赖错误地将其依赖打包到artifact内,或module-info.class

当重复文件不是class时

Caused by: java.util.zip.ZipException: duplicate entry: LICENSE.txt
	at java_util_jar_JarOutputStream$putNextEntry.call(Unknown Source)
	at io.izzel.taboolib.gradle.RelocateJar$_relocate_closure2$_closure8$_closure9$_closure10.doCall(RelocateJar.groovy:67)
	at jdk.internal.reflect.GeneratedMethodAccessor837.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at jdk.internal.reflect.GeneratedMethodAccessor145.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at io.izzel.taboolib.gradle.RelocateJar$_relocate_closure2$_closure8$_closure9.doCall(RelocateJar.groovy:55)
	at jdk.internal.reflect.GeneratedMethodAccessor836.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at io.izzel.taboolib.gradle.RelocateJar$_relocate_closure2$_closure8.doCall(RelocateJar.groovy:54)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at jdk.internal.reflect.GeneratedMethodAccessor145.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at io.izzel.taboolib.gradle.RelocateJar$_relocate_closure2.doCall(RelocateJar.groovy:53)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at jdk.internal.reflect.GeneratedMethodAccessor145.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at io.izzel.taboolib.gradle.RelocateJar.relocate(RelocateJar.groovy:50)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)

out.putNextEntry(new JarEntry(remapper.map(jarEntry.name)))

这种情况下,重复文件一般为LICENSE,NOTICE等

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions