35

我正在使用 m2eclipse 作为我的 Maven 2 Eclipse 插件。我是 maven 的新手,所以我的错误可能很简单,尽管搜索并没有为我提供任何解决方案。我可以从命令行运行 maven 并成功构建。但是,如果我作为现有的 maven 项目导入,或者使用 mvn eclipse:eclipse 然后导入,我会得到在我的 POM 文件中找不到的工件,导致根本没有加载任何 maven 依赖项。

奇怪的是我有 2 个项目,都是父 pom 打包项目的孩子。一个孩子加载了我所有的 maven 依赖项,而另一个找不到任何依赖项,并说我的 pom 文件缺少工件。同样,我可以从命令行安装和打包它们。

我什至尝试将我的项目加载到完美运行的 netbeans 中,但是我需要使用 eclipse。

有想法该怎么解决这个吗?

更新

目录结构,pom文件布局:

--main
  --pom.xml   (is a pom package that is the parent to two other projects)
  --ProjectA
    --pom.xml
  --ProjectB
    --pom.xml

Main 是 ProjectA 和 ProjectB 的父项目。ProjectB 将 ProjectA 作为依赖项。显然 m2eclipse 对这种依赖并不满意。一旦我从 ProjectB 的 pom 文件中删除了 ProjectA 的依赖项,eclipse 就会找到所有 maven 依赖项。

- com.company.myproj:app:6.6.0:jar Missing: ---------- 1) com.company.myproj:main:pom:${myproj.version} ---------- 1 required artifact is missing. for artifact: com.company.myproj:main:pom:$
 {myproj.version} from the specified remote repositories: apache-incubating (http://people.apache.org/repo/m2-incubating-repository/, releases=true, snapshots=true), central (http://
 repo1.maven.org/maven2, releases=true, snapshots=false)

但是,我仍然需要 ProjectB 对 ProjectA 具有依赖关系。错误消息似乎是 m2eclipse 在远程仓库中寻找 ProjectA。项目 A 应该只在 .m2 目录中,但我不知道如何告诉 m2eclipse 去那里看。

我认为这可能只是一个 m2eclipse 特定问题,因为从命令行使用 mvn 可以正常工作,就像我之前所说的,netbeans 加载项目和依赖项就好了。

4

7 回答 7

45

对于在其他项目中创建的依赖项,我遇到了这个问题。下载的第三方依赖项在构建路径中显示良好,但不是我创建的库。

解决方案:在未正确构建的项目中,右键单击项目并选择属性,然后选择 Maven。取消选中标有“解决工作区项目中的依赖项”的框,点击应用,然后点击确定。再次右键单击您的项目并执行 Maven->Update Snapshots(或 Update Dependencies),当您的项目重新构建时,您的错误应该会消失(如果您启用了自动构建,则会自动消失)。

于 2011-08-02T14:50:17.190 回答
20

听起来您的 m2eclipse 安装正在使用嵌入式 Maven,它有自己的存储库(位于用户主目录下)和设置。

如果您打开 Maven 首选项(Window -> Preferences -> Maven -> Installations,您可以通过选择Add...添加您的 Maven 安装,然后浏览到 M2_HOME 目录。

偏好截图
(来源:sonatype.com

有关更多详细信息,请参阅m2eclipse 书

于 2010-03-06T19:24:41.883 回答
19

对我来说,maven 正在下载依赖项,但无法将其添加到类路径中。我看到了我的项目的 .classpath,它没有任何与 maven 相关的条目。当我添加

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

这个问题为我解决了。

于 2012-09-04T07:20:51.710 回答
2

我发现的原因之一是为什么它没有从存储库中找到 jar 可能是因为该特定 jar 的 .pom 文件可能丢失或损坏。只需更正它并尝试从本地存储库加载。

于 2012-10-23T10:40:46.687 回答
1

好的,我解决了这个问题。必须首先将项目转换为 Maven 项目,然后将它们从 Eclipse 工作区中删除,然后重新导入它们。

于 2012-08-01T15:00:08.133 回答
0

我在使用 m2eclipse 时遇到了问题(即它似乎根本没有安装),但我使用IAM开发了一个项目- Eclipse Foundation 支持的 Eclipse Maven 插件(或托管或类似的东西)。

我有时会遇到问题,因为有时项目会出现一些奇怪的错误(它无法移动某些东西),但是简单的命令(从 eclipse 作为任务或从控制台运行)+刷新(F5)解决了所有问题:

mvn clean

但是请注意,我在 Eclipse 中创建了项目。但是我pom.xml手动修改。

于 2010-03-06T19:19:03.673 回答
0

如果您使用的是自定义的“Settings.xml”,其中配置了不同的<localRepository>配置,这可能是一个问题。

Eclipse 将使用 MAVEN 的默认安装,并将使用用户的默认位置来查找本地 Maven 存储库,在 Linux 系统上为 '/home/${USER}/.m2/'

通过执行以下操作,可以轻松地将 Eclipse 配置为使用自定义的“Settings.xml”:Goto -> Window -> Preferences -> Select 'Maven' -> Select 'User Settings'

  1. 在“用户设置”下,为“用户设置”选择自定义“Settings.xml”文件,方法是单击“浏览”并选择自定义的“Settings.xml”。
  2. 单击“更新设置”,如果“本地存储库”文本框未显示上述文件中的自定义位置,只需键入位置并单击“重新索引”。
  3. 点击“确定”

在此之后,您可以继续从“项目资源管理器”中选择您的项目,右键单击,选择“Maven”>“更新项目”。确保在窗口中选择(勾选)您的项目,然后单击“确定”。

如果为 Maven 使用自定义“Settings.xml”,这应该有助于解决问题。

希望能帮助到你。

于 2016-07-22T04:29:51.927 回答