hibernate-commons-annotations-4.0.1.Final.jar;无效的 LOC 标头(错误的签名)?

Posted

技术标签:

【中文标题】hibernate-commons-annotations-4.0.1.Final.jar;无效的 LOC 标头(错误的签名)?【英文标题】:hibernate-commons-annotations-4.0.1.Final.jar; invalid LOC header (bad signature)? 【发布时间】:2014-06-12 04:37:05 【问题描述】:

我是 Maven 新手 ..我正在尝试为 springMVC+Hiberante 创建 maven 项目,但我遇到了很多错误..任何人都可以解决我的问题,请检查我的 pom.xml 以获取以下信息

<?xml version="1.0" encoding="UTF-8"?><project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>Spring3HibernateMaven</groupId>
    <artifactId>Spring3HibernateMaven</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <description></description>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>

                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>

            <!--  <plugin>
               <artifactId>maven-war-plugin</artifactId>
               <version>2.0</version>

             </plugin> -->
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>$org.springframework.version</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>$org.springframework.version</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>$org.springframework.version</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>$org.springframework.version</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>$org.springframework.version</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.1.9.Final</version>
        </dependency>

        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.10</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>20030825.184428</version>
        </dependency>
        <dependency>
            <groupId>commons-pool</groupId>
            <artifactId>commons-pool</artifactId>
            <version>20030825.183949</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.5</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.4</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.5</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.4.0.GA</version>
        </dependency>

    </dependencies>
    <properties>
        <org.springframework.version>3.0.2.RELEASE</org.springframework.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>

但我收到以下错误

[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project Spring3HibernateMaven: Compilation failure: Compilation failure:
[ERROR] error: error reading C:\Users\Bhanu\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar; invalid LOC header (bad signature)
[ERROR] error: error reading C:\Users\Bhanu\.m2\repository\org\hibernate\hibernate-core\4.1.9.Final\hibernate-core-4.1.9.Final.jar; invalid LOC header (bad signature)
[ERROR] error: error reading C:\Users\Bhanu\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar; invalid LOC header (bad signature)
[ERROR] error: error reading C:\Users\Bhanu\.m2\repository\org\jboss\logging\jboss-logging\3.1.0.GA\jboss-logging-3.1.0.GA.jar; invalid LOC header (bad signature)
[ERROR] error: error reading C:\Users\Bhanu\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar; invalid LOC header (bad signature)
[ERROR] error: error reading C:\Users\Bhanu\.m2\repository\org\hibernate\javax\persistence\hibernate-jpa-2.0-api\1.0.1.Final\hibernate-jpa-2.0-api-1.0.1.Final.jar; invalid LOC header (bad signature)
[ERROR] error: error reading C:\Users\Bhanu\.m2\repository\org\hibernate\common\hibernate-commons-annotations\4.0.1.Final\hibernate-commons-annotations-4.0.1.Final.jar; invalid LOC header (bad signature)
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

谁能帮我解决我的问题。 我正在使用 apache-maven-3.2.1 +Java1.6+ecpliseIndigo

【问题讨论】:

【参考方案1】:

您必须从 .m2 存储库中删除所有 jars 并再次运行 maven 项目:如果您已经有战争,那么您必须删除所有 jars 并重新下载。

从 .m2\repository 中删除内容。从你的目录

mvn clean install

【讨论】:

【参考方案2】:

如上情况,从.m2/repository/文件夹中删除commons-logging-1.1.1.jar,然后运行maven-install,肯定会成功。

【讨论】:

【参考方案3】:

导航到您的 C:\Users\user.m2\repository\projects\project1

选择相应的项目并将其从您的 .m2 中删除。然后如果你使用 maven do mvn clean install 否则在终端中相应地构建它。它将为您重新创建这些 jar 文件在服务器中重新安装 ear 或 war 文件,它现在应该可以正常部署了。

它对我有用。

【讨论】:

【参考方案4】:

原因是 jar 文件损坏。 使用 mvn dependency:purge-local-repository 删除并重新加载本地 maven 存储库中的依赖项。

【讨论】:

【参考方案5】:

重要的是要记住无效的东西是无用的(例如损坏的),所以:

删除所有签名无效的 JAR。 invalid 表示无效。 更新 Maven 项目,清理,安装。 如果您仍然收到无效的 LOC 标头 - 更改 repo 和您的 ISP...

我有类似的问题,它与修订或 Maven 本身无关......问题是 JAR 损坏( Eclipse with Maven plugin does not work with latest revisions, but works with older ones)。

祝你好运!

【讨论】:

【参考方案6】:

它抛出是因为您的 hibernate-commons-annotations-4.0.1.Final.jar 无效或损坏。

按照步骤操作:

注意:.m2 文件夹默认隐藏。取消隐藏文件夹。

第1步:删除.m2/repository文件夹中的所有内容。

第 2 步:重新启动 Eclipse。

第 3 步:Maven->更新项目。Checked-强制更新快照/发布。

第 4 步:以 Maven Clean 身份运行。

第 5 步:作为 Maven 安装运行。

第 6 步:清理项目。

第 7 步:运行您的项目。

我希望你在这里找到你的解决方案..

谢谢..

【讨论】:

【参考方案7】:

我知道这是一个旧线程,但我遇到了同样的问题(尽管使用不同的 jar 文件)。

在 Eclipse 中,当由于 LOC 标头损坏而导致 maven 构建失败时,会生成警告(在我的情况下,它是 spring-tx-3.0.3.RELEASE.pom 但可能是任何其他 maven 依赖项)。

进入构建堆栈跟踪并找出哪个 JAR 失败,从 .m2 存储库中删除相应的 repo 文件夹并重新构建,这应该可以解决问题。

【讨论】:

【参考方案8】:

我在运行 mvn clean install 命令时遇到了同样的错误

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project MongoModule: Compilation failure
[ERROR] error: error reading /home/radium/.m2/repository/org/mongodb/mongo-java-driver/3.2.2/mongo-java-driver-3.2.2.jar; invalid LOC header (bad signature)
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project MongoModule: Compilation failure
error: error reading /home/radium/.m2/repository/org/mongodb/mongo-java-driver/3.2.2/mongo-java-driver-3.2.2.jar; invalid LOC header (bad signature)

然后我从maven repo中删除了mongo-java-driver-3.2.2.jar文件并重新运行maven build命令,这迫使maven重新下载jar并成功构建项目。

【讨论】:

【参考方案9】:

我会告诉你我做了什么

我在 common-logging 中遇到了同样的错误,所以我去了 C:\Users\admin.m2\repository\commons-logging 并删除了目录。下次编译的时候问题就解决了。

【讨论】:

【参考方案10】:

我遇到了同样的问题。所以我更新了我的 maven 库,它对我有用。

【讨论】:

“更新我的 maven 库”是什么意思?你能提供一些说明吗?【参考方案11】:

另一种选择是更新 Maven 设置文件而不是删除 repo 添加一个新的 repo - &lt;localRepository&gt;C:\\repos\\mycustomrepo&lt;/localRepository&gt;

如果您在不同的不相关项目之间工作 - 就像我的情况一样,这可能很有用。 @Vinay Rao 的回答为我指明了创建自定义仓库的方向。

【讨论】:

【参考方案12】:

这看起来像是下载损坏的 jar 的问题。我只在使用 eclipse 时看到过这种情况。这是我为摆脱这个问题所做的:

从 C:\Users\Bhanu.m2\repository 中删除内容。无论是一切还是选择性 - 您的选择。

然后使用命令提示符强制下载jar并构建

mvn clean install

【讨论】:

只需删除.m2 repo 中的一个有问题的后代子文件夹并强制使用Update Project(在我的情况下使用Force update snapshots)就可以了 感谢您,我通过删除“repository\org\springframework\data\spring-data-jpa\..”的所有子文件夹然后运行“mvn clean”解决了类似(无效的 LOC 标头)问题之后安装-U”。但是我仍然必须将 Maven 依赖项包含并导出到 Eclipse 构建路径中 我登录只是为了对这个建议竖起大拇指。它对我有用。谢谢

以上是关于hibernate-commons-annotations-4.0.1.Final.jar;无效的 LOC 标头(错误的签名)?的主要内容,如果未能解决你的问题,请参考以下文章