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

时间:2011-03-31 13:21:58

标签: maven dependencies m2eclipse

我正在尝试首次使用这个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。

谢谢。

13 个答案:

答案 0 :(得分:12)

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

Project -> Maven -> Update Maven Project

然后确保您已选择:

Force Updates of Snapshots/Releases

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

答案 1 :(得分:7)

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

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

答案 2 :(得分: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选择它。

答案 3 :(得分:2)

使用Eclipse Kepler,删除和重新添加maven性质修复了我遇到的同样问题。这个过程实际上做的是修改.settings / org.eclipse.m2e.core.prefs文件,更改行

resolveWorkspaceProjects=false

resolveWorkspaceProjects=true

因此,如果必须,您可以手动进行此更改。

答案 4 :(得分:2)

为未来的Google员工添加我的2c:

每当出现此问题时,我会从m2存储库中删除相应的文件夹(在~/.m2/repository)上的mac上,然后使用clean install从eclipse再次构建。

每次都有效。

答案 5 :(得分:1)

关闭eclipse IDE并再次打开它,这个问题应该修复。

答案 6 :(得分:0)

构建路径中缺少jar表示您尚未启用Maven依赖项。右键单击项目,选择Maven,选择“启用Maven依赖关系管理”。这允许M2Eclipse引用您的POM。

答案 7 :(得分:0)

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

答案 8 :(得分:0)

其他建议都没有奏效,但以下步骤对我有用(SpringSource Tool Suite 2.6.1):

  • 备份本地Maven存储库的内容
  • 删除存储库
  • 项目> Maven>更新依赖关系
  • 从备份中替换公共存储库中不可用的任何内容

答案 9 :(得分:0)

如果禁用和启用项目依赖关系管理没有帮助(通常有帮助),您可以修改项目中的.classpath文件并添加一行:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>

在eclipse之后,应该添加依赖项。

答案 10 :(得分:0)

我遇到了同样的问题。在CLI清理安装上,然后在eclipse上删除依赖项,再次粘贴它,这就行了。

答案 11 :(得分:0)

删除除maven本地存储库中的jar之外的所有工件

答案 12 :(得分:0)

最新答案:就我而言,我在settings.xml中有多个配置文件。自从在Maven Build运行配置中选择了正确的配置文件以来,Build就可以正常工作,但是编辑器显示错误,因为未通过Project-> Maven-> Select Maven Profiles选择该配置文件。