MavenArchiver.getManifest()中的m2e错误


100

我在STS中看到一个错误,不确定如何调试它。到处搜索我只看到模糊的错误引用,没有解决方案。

错误是:

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

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

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

STS信息

  • 版本:3.7.3.RELEASE
  • 建立编号:201602250940
  • 平台:Eclipse Mars.2(4.5.2)

m2e信息

  • 版本:1.6.2.20150902-0002

可能需要查看pom.xml来诊断问题。代码抱怨pom.xml文件的布局,这不是Maven软件内的错误。因此,您不会期望看到错误日志文件。我遇到的最常见原因是标签内容中的印刷错误或起始标签与结束标签之间不匹配。
布拉德利·罗斯

1
从命令行运行时,代码可以很好地编译。我认为如果有错字或标签不匹配,将会出错,对吗?
斯科特

即使这个SO问题的第一个答案对我有用,我仍想知道为什么我看到的只是该错误并且没有上下文。它没有说发生什么事。它只是说一个方法名称“ MavenARchiver.getManifest”-没有错误文本,没有任何内容……甚至没有引发任何异常的地方。在月食中什么地方出了问题,我们在哪里找到完整的错误?这样的红色X对我们没有用。只是将方法名称打印为错误消息是谁的愚蠢想法?
Calicoder

Answers:


196

maven-jar-plugin将其更新为最新版本(撰写本文时)时,我遇到了相同的问题3.0.2
Eclipse 4.5.2开始pom.xmlorg.apache.maven.archiver.MavenArchiver.getManifest错误标记该文件,并且Maven > 更新项目..无法修复它。

简便的解决方案:降级到2.6版本
确实可能的解决方案是恢复到version 2.6,然后对该项目进行进一步的更新将消除任何错误。但是,这不是理想的情况,并且可能有更好的解决方案:更新m2e扩展(Eclipse Maven集成)。

更好的解决方案:
在“ 帮助” >“ 安装新软件..”中更新Eclipse m2e扩展,添加新的存储库(通过“ 添加..”选项),并指向以下URL:

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

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


附加说明出现
此问题的原因是,从版本3.0.0开始,相关组件,maven-archiver及相关组件plexus-archiver已升级到较新版本,从而打破m2e了Eclipse中集成的内部用法(通过反射)。如上所述,唯一的解决方案是正确地更新Eclipse。
还要注意:尽管Eclipse最初会报告错误,但是Maven构建(例如从命令行)将继续正常运行,但此问题仅与Eclipse-Maven集成(即IDE)有关。


3
通过将降级maven-war-plugin3.0.0,我可以解决类似的问题2.6
Ben Hutchison

1
我无法访问otto.takari.io网站,但是我可以从http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/
azurefrog

3
为了使Eclipse火星正常工作:repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/…。将其放入“安装”->“使用”字段中,输入“ Enter”。在列表中检查m2e扩展(仅一种选择)。
hariprasad

1
也可以与“ Mars.2”一起使用。
Pino,

16

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


14

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

<properties>        
    <maven-jar-plugin.version>2.6</maven-jar-plugin.version>
</properties>

11

我有完全一样的问题。我的环境是:

  • Spring STS 3.7.3。发布
  • 建立编号:201602250940
  • 平台:Eclipse Mars.2(4.5.2)

问题的症状是:

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

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

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


这是我遭受Spring STS 3.7.3困扰的确切Maven插件冲突
ArifMustafa

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>

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>


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>

-1

使用此链接中给出的步骤。它为我工作。

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

步骤-2单击属性

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

步骤-4您将在右侧的“活动Maven配置文件”文本框中看到“ pom.xml”。清除它,然后单击“应用”。

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

希望能帮助到你!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.