m2eclipse说"缺少神器"但我可以用cmdline构建!

Pin*_*ino 23 dependencies m2eclipse maven

我正在尝试首次使用这个Sonatype Eclipse插件来处理我可以使用maven从命令行构建的现有(巨大)软件.

我已经将插件配置为使用我的maven 2.2.1安装而不是内置的Maven 3.

在Eclipse中,我有25个项目(通过root pom.xml加载),其中4个有编译错误; maven控制台包含很多像这样的行:

缺少工件commons-logging:commons-logging:jar:1.0.4:compile

我在我的存储库中有所有jar,并正确定义了M2_REPO类路径变量.为什么插件没有看到所有的罐子?

这些项目的.classpath文件只引用"MAVEN2_CLASSPATH_CONTAINER",没有jar列表.Eclipse中的pom.xml在丢失的jar的第一行显示错误,但我可以从命令行构建!

任何的想法?我需要帮助!如果我不解决这个问题,我会尝试迁移到NetBeans.

谢谢.

Dam*_*ian 12

您可能需要告诉Eclipse强制更新:

Project -> Maven -> Update Maven Project
Run Code Online (Sandbox Code Playgroud)

然后确保您已选择:

Force Updates of Snapshots/Releases
Run Code Online (Sandbox Code Playgroud)

当mvn安装将一些jar文件复制到Maven存储库中时,会发生这种情况,并且Eclipse已经在此jar被复制之前检查了此repo.


小智 7

如果在Eclipse中出现上述问题时启用了依赖关系管理,则可以Project > Maven > Disable Dependency Management and then \Project > Maven > Enable Dependency Management.这通常会删除pom.xml中的任何依赖项错误.

在上述步骤完成项目依赖项后,@ Nishant在上面的回答中也表示了这一点.


Nis*_*ant 5

right click on your project > Maven > Update Dependencies

然后

right click on your project > Maven > Update Project configuration

假设您正确安装了M2Eclipse插件,这应该可以解决问题.另外,检查是否有选项right click project > Maven > Enable dependency Management选择.

  • 两个更新命令再次生成"缺失工件"错误列表.我已经尝试了我的maven 2.2.1安装和内置的Maven 3.启用了依赖关系管理.是否有任何内部索引未被这些命令更新?我甚至尝试从头开始重新安装Eclipse Helios SR2以及Eclipse Marketplace中的插件:没有任何改变. (2认同)

Pin*_*ino 0

我终于找到了解决方法。这肯定是 m2eclipse 中的一个错误,但是当我在 The pom is not present at http://repo1.maven.org/maven2/opensymphony/quartz/1.6.0/quartz-1.6.0.pom中添加旁边时,问题消失了,但您可以从中提取它链接地址:http://jira.opensymphony.com/browse/QUARTZ-482 这是一个奇怪的解决方案,但它也适用于我同事的电脑。quartz-1.6.0.jar.m2\repository\opensymphony\quartz\1.6.0\
quartz-1.6.0-bundle.jar