102

我在 STS 中看到一个错误,不知道如何调试它。环顾四周,我只看到对错误的模糊引用,没有解决方案。

错误是:

org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) pom.xml/ <maven projectName>line 1 Maven配置问题

问题:任何人都可以就如何获取有关该问题的更多信息提出任何建议,以便进一步调试它或任何可能的解决方案?

也许更多关于方法功能的上下文。与该MavenArchiver.getManifest()方法关联的 javadoc 不是很详细,而且我没有看到堆栈跟踪。我已尝试对项目和相关项目进行多次刷新和更新,包括清除我的本地 m2 存储库。

STS 信息

  • 版本:3.7.3.RELEASE
  • 内部版本号:201602250940
  • 平台:Eclipse Mars.2 (4.5.2)

m2e信息

  • 版本:1.6.2.20150902-0002
4

11 回答 11

198

maven-jar-plugin更新到最新版本(在撰写本文时)后,我遇到了同样的问题, 3.0.2.
Eclipse开始用错误4.5.2标记pom.xml文件,并且Maven > Update Project..无法修复它。org.apache.maven.archiver.MavenArchiver.getManifest

简单的解决方案:降级到 2.6 版本
事实上,一个可能的解决方案是回到版本2.6,进一步更新项目将消除任何错误。但是,这不是理想的场景,可能有更好的解决方案:更新m2e扩展(Eclipse Maven 集成)。


更好的解决方案:从Help > Install New Software..更新 Eclipse m2e 扩展,添加一个新的存储库(通过Add..选项),指向以下 URL:

  • https://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/

然后像往常一样按照更新向导进行操作。然后 Eclipse 将需要重新启动。之后,有关 Maven 项目的进一步更新项目..maven-jar-plugin将消除任何错误,然后您的 Maven 构建可以享受最新版本的好处。


附加说明
此问题的原因是从版本3.0.0开始,相关组件maven-archiver和相关组件plexus-archiver已升级到较新版本,破坏m2e了 Eclipse 中集成的内部使用(通过反射)。唯一的解决方案是正确更新 Eclipse,如上所述。
另请注意:虽然 Eclipse 最初会报告错误,但 Maven 构建(例如,从命令行)会继续完美运行,这个问题仅与 Eclipse-Maven 集成有关,即与 IDE 有关。

于 2016-06-29T11:56:25.560 回答
16

我找到了答案!我查看了 pom 中任何依赖于 maven-archiver 的插件,发现 maven-jar-plugin 确实如此。它使用的是最新的 3.0.0 版本。当我降级到 2.6 时,它似乎解决了这个问题:-)

于 2016-05-31T21:39:10.473 回答
14

我在 Spring Boot 项目中遇到了同样的问题。解决方案是将 jar maven-jar-plugin 从 3.2 降级到 2.6 。我只需将其添加到项目 pom 中:

<properties>        
    <maven-jar-plugin.version>2.6</maven-jar-plugin.version>
</properties>
于 2017-05-24T10:49:54.270 回答
11

我有完全相同的问题。我的环境是:

  • Spring STS 3.7.3.RELEASE
  • 内部版本号:201602250940
  • 平台:Eclipse Mars.2 (4.5.2)

问题的症状是:

  1. 我的 PM 文件上有一个红色错误标志。并且错误的描述与此处提出的原始问题中的描述相同。
  2. 项目中的几个 Java 文件存在已知的编译问题,但 Eclipse 仍然没有在编辑器窗格以及左侧的项目资源管理器树中将它们标记为错误。

关于更新 m2e 扩展的解决方案(如上所述)对我有用。

更好的解决方案(我的建议):

于 2016-11-06T15:39:56.943 回答
7

我在 Spring Boot 项目中遇到了同样的问题。解决方案是将 spring-boot-starter-parent 依赖版本从 2.0.0.RELEASE 降级到 1.5.10.RELEASE(你可以移动到任何稳定版本)

从:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.10.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
于 2018-03-16T05:12:21.957 回答
7

我也遇到了同样的问题,它通过将版本3.2.0更改为2.6得到解决,如下 pom.xml 片段所示

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <warSourceDirectory>src/main/webapp</warSourceDirectory>
        <warName>Spring4MVC</warName>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>
于 2018-04-19T17:31:03.533 回答
4

升级您的 m2e 扩展而不是降级。

从 Help > Install New Software..,添加一个新的存储库(通过 Add.. 选项)

为您的插件指定名称并添加路径http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/

完成安装后,请重新启动 eclipse 并更新您的项目。

于 2018-08-25T16:24:21.147 回答
0

我也遇到了类似的问题,将版本从2.0.0.RELEASE更改为1.5.10.RELEASE对我有用,请在降级 maven 版本之前尝试

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>  
</dependencies>
于 2018-05-15T17:01:10.207 回答
0

我也遇到了同样的问题,并通过在 POM.xml 中注释版本元素来解决它。

org.apache.maven.archiver.[MavenArchiver](https://maven.apache.org/shared/maven-archiver/apidocs/org/apache/maven/archiver/MavenArchiver.html).getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration)

<plugins>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <!-- <version>3.5.1</version> -->
    <configuration>
      <source>1.7</source>
      <target>1.7</target>
    </configuration>
  </plugin>
  <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <!-- <version>3.1.0</version> -->
    <configuration>
      <warSourceDirectory>WebContent</warSourceDirectory>
      <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
  </plugin>
</plugins>
于 2020-09-03T08:27:37.563 回答
0

我通过添加以下代码解决了 pom.xml 中的这个错误

spring-rest-demo org.apache.maven.plugins maven-war-plugin 2.6
于 2020-08-27T10:22:05.727 回答
-1

使用此链接中给出的步骤。它对我有用。

步骤 - 1 在 Eclipse 中右键单击您的项目

步骤 - 2 单击属性

步骤 - 3 在左侧列表中选择 Maven。

Step - 4 您会在右侧的 Active Maven Profiles 文本框中注意到“pom.xml”。清除它并单击应用。

步骤 - 5 运行方式 -> Maven 清理 -> Maven 安装

希望能帮助到你!

于 2019-01-16T10:38:29.147 回答