使用Maven生成Eclipse项目文件

16

当我尝试使用mvn eclipse:eclipse生成Eclipse项目文件时,出现以下错误:

插件管理器在执行目标'org.apache.maven.plugins:maven-eclipse-plugin:2.9-SNAPSHOT:eclipse'时出现内部错误:无法加载插件'org.apache.maven.plugins:maven-eclipse-plugin'中的'maven-eclipse-plugin:2.9-SNAPSHOT:eclipse' mojo。一个必需的类不存在:org/codehaus/plexus/resource/loader/ResourceNotFoundException

看起来我正在使用 Maven Eclipse 插件的 2.9-SNAPSHOT 版本。我的猜测是该插件版本存在错误,如果我使用稳定版本(而不是快照版本),问题将会得到解决。是否有办法更改我正在使用的插件版本,或者这个问题与 Eclipse 插件版本无关?

3个回答

26

可以使用插件的完整限定名称来指定版本:

$ mvn org.apache.maven.plugins:maven-eclipse-plugin:2.8:eclipse

或者编辑~/.m2/plugin-registry.xml文件(对于高级用户,请备份)。

或者尝试使用-npr,--no-plugin-registry选项告诉Maven不要使用~/.m2/plugin-registry.xml中的插件版本:

$ mvn -npr eclipse:eclipse

但我不能保证成功的结果。请参阅插件注册表介绍了解更多细节。

或者从您的本地存储库中删除版本2.9-SNAPSHOT

$ rm -rf ~/.m2/repository/org/apache/maven/plugins/maven-eclipse-plugin/2.9-SNAPSHOT

2

很遗憾,问题仍然存在,所选答案并没有帮到我,因为Maven总想获取最新可用版本,而这是有问题的2.9-SNAPSHOT。

我不得不手动在我的POM中指定工作版本2.8,如下所示:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-eclipse-plugin</artifactId>
   <version>2.8</version>
   <configuration>
...

4
问题在于Maven 2和Maven 3中快照(snapshot)构件的分辨率不同,Maven 3支持像日期一样的快照分类器(snapshot classifiers),而Maven 2则不支持。不幸的是,只有仓库管理员才能解决这个问题,请参阅http://maven.40175.n5.nabble.com/maven-3-snapshot-resolving-td3238639.html - 升级到Nexus 1.8应该可以解决这个问题。 - Gregor

0

接受的答案中提到的解决方案似乎不起作用。如果不使用插件注册表,它总是尝试使用最新版本,并在您尝试删除它时重新下载。

我通过更新文件来解决问题

.m2/repository/org/apache/maven/plugins/maven-eclipse-plugin/maven-metadata-central.xml

您不应该编辑此文件,但如果它使用的是2.9-SNAP而不是2.9,则可能意味着该文件在最新版本中指定了2.9-SNAP而不是2.9


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接