当前位置: 首页 > 知识库问答 >
问题:

无效的LOC标头(签名错误)

舒斯伯
2023-03-14

我在Maven构建期间收到此错误。

无法执行目标组织。阿帕奇。专家插件:maven shade插件:2.4.3:项目dl4j上的shade(默认)示例:创建着色jar时出错:无效的LOC头(错误签名)-

这是我的pom。xml文件。

    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>${maven-shade-plugin.version}</version>
            <configuration>
                <shadedArtifactAttached>true</shadedArtifactAttached>
                <shadedClassifierName>${shadedClassifier}</shadedClassifierName>
                <createDependencyReducedPom>true</createDependencyReducedPom>
                <filters>
                    <filter>
                        <artifact>*:*</artifact>
                        <excludes>
                            <exclude>org/datanucleus/**</exclude>
                            <exclude>META-INF/*.SF</exclude>
                            <exclude>META-INF/*.DSA</exclude>
                            <exclude>META-INF/*.RSA</exclude>
                        </excludes>
                    </filter>
                </filters>

            </configuration>

            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>reference.conf</resource>
                            </transformer>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>

我多次尝试删除jar文件,但似乎都不起作用。

共有3个答案

简意
2023-03-14

我也面临同样的问题,只是把它从。m2文件夹,再次构建您的问题将得到解决

丘友樵
2023-03-14

我已经面对这个问题很久了

所以我决定自动识别和移除损坏的罐子

这是我为此创建的util类:

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.jar.JarFile;

public class MavenFix {

    public static void main(String[] args) throws IOException {
        Files.walk(Paths.get("C:/data/.m2/repository"))
        .filter(file -> file.toString().endsWith("jar"))
        .forEach(path -> {
            try {
                System.out.print(".");
                new JarFile(path.toString(), true).getManifest();
            } catch (Exception e) {
                System.out.println();
                System.out.println(path + " - " + e.getMessage());
                try {
                    cleanAndDeleteDirectory(path.getParent().toFile());
                } catch (IOException e1) {
                    System.err.println(e1.getMessage());
                }
            }
        });
    }

    public static void cleanAndDeleteDirectory(File dir) throws IOException {
        File[] files = dir.listFiles();
        if (files != null && files.length > 0) {
            for (File aFile : files) {
                Files.delete(aFile.toPath());
            }
        }
        Files.delete(dir.toPath());
    }
}
蓝泰平
2023-03-14

我也面临同样的问题,本是正确的,这是jar文件损坏的情况。去吧。m2 repo文件夹,并从中删除它,然后再次构建它(mvn clean install)。这将解决这个问题。

 类似资料:
  • 问题内容: 我已经经历过类似的帖子。我已经尝试了大多数解决方案,但无法摆脱我遇到的错误。希望对此有所帮助。 在将Maven依赖项添加到部署程序集之后,出现了此错误。我将STS与Pivotal tc Server Development Edition v3.1一起使用。我已经检查了tc服务器和java home的版本。两者都使用Java 8。 我不明白问题是什么。 以下是我的pom.xml。当我尝

  • 问题内容: 在执行这段(相对简单的)代码时,我得到了这个错误: 其实。有趣的是,我在java-sun-6u32和java-1.6.0-openjdk-amd64上得到它,但是java- sun-7u4成功了。解压缩本身似乎可以解决问题。我猜这意味着这些zipfile可能是由Java 7可以理解的某些较新版本的zip创建的,而以前的版本则不是。但是,任何见识将不胜感激。另外,由于在生产中我真的没有使

  • 我是Maven的新手。我正在尝试为springMVC Hiberante创建Maven项目,但我遇到了很多错误。有人能解决我的问题吗?请检查我的pom。下面的xml 但是我得到了以下错误 有人能帮我解决问题吗?我使用的是apache-maven-3.2.1 Java1.6 ecpliseIndigo

  • 我要做的是询问用户是否要创建新的Excel工作簿或选择现有的Excel工作簿。选择一个现有的文件是没有问题的。然而,当我为一个新的Excel文件创建名称时,我得到一个错误:“您的文件似乎不是一个有效的OLE2文档”。 后来呢: 下面是我得到的错误:

  • 我试图使用Apache POI 3.9将XLS文件转换为java中的CSV文件,但是我遇到了一些问题。当尝试转换我需要的文件时,它显示了以下错误: 我认为我使用的代码是完全正确的(它也适用于其他文件)。我认为问题出在XLS文件上,因为当我试图使用微软Excel打开它时,它也向我显示了一个关于文件类型的警告(它说它是微软Excel 3工作表)。有没有办法使用POI打开这些文件?