【问题标题】:Compiler error "archive for required library could not be read" - Spring Tool Suite编译器错误“无法读取所需库的存档” - Spring Tool Suite
【发布时间】:2012-02-10 02:15:31
【问题描述】:

我开始配置我的开发环境,我正在使用 Spring Tool Suite 2.8.1 和 m2E 1.01。

据我所知,由于这是一个 Maven 项目(我的第一个项目),我的 Maven POM 决定(连同 m2E 智能)我的项目构建配置和依赖项。

我想知道的是为什么我的 IDE 显示 Java 构建问题“无法读取库 library/path/somejar.jar 所需的存档或不是有效的 zip 文件”什么时候可以在我的 .m2 存储库中看到这些 jar?

所有错误都与我在 parent-pom.xml 中排除的 commons-logging:1.1.1 相关。这是通过 spring-context-support:3.0.5 实现的传递依赖。我从构建中排除了该库,现在错误与 spring-context-support 库有关。

我附上了一张截图来说明。

【问题讨论】:

  • 你需要为 maven 执行 install 目标:寻找 m2e 的上下文菜单。这将获取所有丢失的依赖项。
  • 感谢 dma_k,我已经尝试过了,但无济于事。 jar 在我的 .m2 存储库中..我只是不知道为什么它没有被读取...
  • 如果有 jar 文件,请尝试刷新您的项目。通常这会有所帮助。
  • 好的,这有帮助 - 现在还有其他错误 - 但这有帮助。谢谢

标签: java maven m2eclipse sts-springsourcetoolsuite m2e


【解决方案1】:

确实,IDE 经常缓存本地存储库(Eclipse 做类似的事情,我必须重新启动 Eclipse)。

您可能会遇到一个丑陋的 maven 行为,如果您在实际安装之前声明了一个依赖项,maven 将创建一个缺少的依赖项的空版本(包含元数据但没有 jar 的文件夹),您将不得不手动清理您的.m2 存储库。

第三,已安装的存档(jar...)可能会损坏,因此请尝试使用任何存档工具(7zip...)打开它进行测试,如果存档损坏,请删除整个文件夹。

【讨论】:

  • 在将现有项目添加到新的 Git 存储库后,只需重新启动 Eclipse 即可为我工作。谢谢+1
  • 似乎是 Helios 的一个已知错误(不确定 Juno 是否存在)。 bugs.eclipse.org/bugs/show_bug.cgi?id=375249。当 jar 有效时,只需删除项目(而不是内容)并将现有项目导入工作区即可修复它。
  • Eclipse 重新启动对我不起作用,删除/导入确实有效
  • 手动清理目录似乎对我有用。只需rm -rf ~/.m2/repository/<path of dependency> (linux/mac) 似乎就足够了。
【解决方案2】:

在我的情况下,我必须手动删除 .m2\repository 文件夹中的所有文件,然后打开命令提示符并在我的项目目录中运行 mvn -install 命令。

【讨论】:

  • 在 ubuntu mvn -install 上说这不是一个有效的命令我刚刚删除了 .m2\repository 中的所有文件并通过 alt+f5 从 IDE (STS) 更新了 maven 项目,然后检查“强制更新快照/releases”然后OK...解决了我的问题..THANKS :)
【解决方案3】:

就我而言,我尝试了所有建议的提示,但错误仍然存​​在。我解决了使用更新版本进行更改并将其写入 pom.xml 的问题。之后一切正常。

【讨论】:

    【解决方案4】:

    我在使用 Eclipse 作为 IDE 时遇到了同样的错误。我必须做项目-> Maven-> 更新项目。选择下面的所有复选框,除了“离线”特别是。一个“强制更新快照/版本”,然后单击“确定”。是否再次为项目进行了干净构建。

    【讨论】:

      【解决方案5】:

      对于 Google 员工:

      在我的例子中,我在浏览 Eclipse 时不小心手动将 Java 类添加到构建路径。通过查看“配置构建路径...> 库”,我删除了罪魁祸首类,现在只有

      • JRE 系统库
      • Maven 依赖项

      没有什么可抱怨的。

      【讨论】:

      • 我遇到了与此类似的问题,将 application.properties 添加到源文件夹导致它被添加为 eclipse Oxygen 中的应用程序库。它正在为所需库生成错误存档:无法读取项目中的“src/main/resources/application.properties”或不是有效的 ZIP,并且从构建路径中删除该依赖项解决了该问题。
      【解决方案6】:

      这可能是因为您已将 spring-licence.txt 文件添加到您的网络应用程序库中。

      我有类似的问题并在删除该文本文件后解决。在库中,它只需要 jar 文件。

      【讨论】:

        【解决方案7】:

        我删除了本地 Maven 存储库。 然后只需右键单击项目 -> Maven -> 更新项目... 选择所有相关项目,然后单击“确定”。

        【讨论】:

          【解决方案8】:

          从构建路径中删除 maven 依赖项

          【讨论】:

            【解决方案9】:

            从本地 .m2 存储库和 Eclipse/STS 中的 Ctrl+F5(更新 Maven 项目)中删除损坏的文件。它会下载并安装这些文件。

            【讨论】:

            • 我认为是 ALT + F5
            【解决方案10】:

            我遇到了这个问题。我有“所需库 spring-boot-devtools 的存档无法读取或不是有效的 ZIP 文件”,解决方案是这样的:- 1-确定有问题的依赖名称(可能是spring-boot-devtools)。 2-关闭日食。 3- 在您的 .m2 文件中搜索这些依赖项(按名称)。 4-删除这些文件夹。 5-重新打开eclipse,让maven再次重建你的依赖。

            【讨论】:

              【解决方案11】:

              好的,我在 Mac 上遇到了与 STS 相同的问题,并通过删除存储库文件夹中的所有文件并从 STS IDE 单击项目然后单击 Maven -> 更新项目来解决它。给它几分钟下载所有依赖项,问题就解决了。

              【讨论】:

                【解决方案12】:

                我面临同样的问题。我删除了本地存储库并重新启动了 ID。效果很好。

                【讨论】:

                  【解决方案13】:

                  刚刚在 Indigo SR2 上遇到了这个问题。在我从类路径(构建路径)中删除了一个多余的 jar 后,它弹出了。重新启动 Eclipse 没有帮助。将 jar 添加回构建路径...错误消失了。再次取下罐子,这一次我没有受到另一次投诉。

                  【讨论】:

                    【解决方案14】:

                    以上解决方案都没有解决我的问题。我已经通过删除 {projectworkspace}/.metadata 文件夹和 {location}/.m2 文件夹中的所有文件解决了这个问题,然后让 eclipse 再次下载每一个东西。希望这对某人有帮助,干杯!

                    【讨论】:

                      【解决方案15】:

                      这对我有用。

                      1. 关闭 Eclipse
                      2. 删除./m2/repository
                      3. 打开Eclipse,会自动下载所有的jars
                      4. 如果问题仍然存在,请右键单击项目 > Maven > 更新项目... > 选中“强制更新快照/发布”

                      【讨论】:

                        【解决方案16】:

                        当我收到“无法读取所需库的存档”的错误消息时,我通过从项目的构建路径中删除有问题的 JARS 来解决它,然后使用“添加外部 jars”将它们重新添加到再次(导航到他们所在的同一文件夹)。使用“添加罐子”按钮不起作用,错误仍然存​​在。但是使用“添加外部罐子”有效。

                        【讨论】:

                          【解决方案17】:

                          以下步骤解决了我的问题。

                          1. 转到 ./m2/repository 文件夹。

                          2. 转到相应的存档错误文件夹。

                          3. 验证是否存在任何 zip 文件。

                          4. 删除错误名称文件夹。

                          5. 现在来到 Eclipse 项目 - 右键单击​​ - Maven -> 更新项目。

                          以上技巧对我有用。

                          【讨论】:

                            【解决方案18】:

                            我的项目也面临同样的问题。

                            我的项目找不到这个存档:-

                            C:\Users\rakeshnarang\.m2\repository\org\hibernate\hibernate-core\5.3.7.Final
                            

                            我去了这个目录并删除了这个文件夹。

                            回到 Eclipse 并按 ALT + F5 来更新项目。

                            再次下载jar文件,问题解决。

                            你应该试试这个。

                            【讨论】:

                              【解决方案19】:

                              另外,以下命令也适用于我:

                              mvn -s settings.xml eclipse:clean
                              mvn -s settings.xml eclipse:eclipse
                              

                              【讨论】:

                                【解决方案20】:

                                如果是 VSCode,请按照以下步骤操作:

                                1. 导航到包含损坏 jar 的相应文件夹
                                2. 只删除 jar
                                3. mvn clean
                                4. mvn 编译

                                这对我有用。

                                【讨论】:

                                  【解决方案21】:

                                  阅读问题部分中的问题,确定哪个依赖项无法读取,然后转到 maven 存储库 .m2\repository -> 1)检查依赖关系并将其从文件夹中删除 2) 进入STS/Eclipse -> 点击maven -> update project -> 选择强制更新snapshots/releases,点击ok。

                                  或 从 .m2/repository 中删除依赖项并重建 maven --> 更新 maven 项目

                                  【讨论】:

                                    【解决方案22】:

                                    当 Eclipse 搞砸时会发生这种情况。要修复它,请删除以下所有文件:

                                    workspace/.metadata/.plugins/org.eclipse.jdt.core
                                    

                                    【讨论】:

                                      【解决方案23】:
                                      Delete your C:\Users\PC\.m2** folder
                                      and update maven project 
                                      

                                      【讨论】:

                                        猜你喜欢
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 2022-11-30
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 2019-01-19
                                        • 1970-01-01
                                        • 2015-06-10
                                        相关资源
                                        最近更新 更多