如何配置 Eclipse 构建路径以使用 Maven 依赖项?

Posted

技术标签:

【中文标题】如何配置 Eclipse 构建路径以使用 Maven 依赖项?【英文标题】:How to configure Eclipse build path to use Maven dependencies? 【发布时间】:2011-01-03 11:27:47 【问题描述】:

我想利用 Maven 提供的功能来管理项目中的依赖项。我对 Maven 工作原理的简要理解是,它将获取所需的 JAR,然后使用这些库构建项目。

目前我设置了一个简单的 POM 文件作为测试:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jamesgoodwin.test</groupId>
  <artifactId>com.jamesgoodwin.test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.0.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

为了管理依赖关系,我通常将项目或 JAR 添加到构建路径中,然后我就可以构建我的项目了..

但是当使用 M2Eclipse 时,依赖项不会自动添加到构建路径中。是否有任何配置让 Eclipse 知道 Maven 正在管理依赖项?

【问题讨论】:

【参考方案1】:

如果您右键单击您的项目,“maven”下应该有一个“启用依赖项管理”选项。就是这样。

【讨论】:

默认情况下,如果您导入使用 mvn eclipse:eclipse 创建的项目,m2eclipse 不会这样做,所以这似乎总是让人绊倒。 它实际上已经为我的项目启用了。也许是因为我选择将 POM 文件添加到现有项目中?然而,做 Maven > 更新项目配置似乎已经为我修复了它。同样,正是您的回答最终使我发现了可以修复项目的工具栏。非常感谢 即使我似乎安装了m2eclipse,如果右键菜单中没有“Maven”选项怎么办? 啊,“配置”=>“转换为 Maven 项目”是你的朋友! @dfrankow 如果“配置”=>“转换为 Maven 项目”选项不存在怎么办??【参考方案2】:

如果你执行

mvn eclipse:clean

紧随其后

mvn eclipse:eclipse

if 将为您准备 eclipse .classpath 文件。也就是说,这些命令是从命令行(即在 eclipse 之外)针对 maven 运行的。

【讨论】:

请注意,这是通过使用类路径变量 (M2_REPO) 来引用您的依赖项来工作的,它不使用 m2eclipse,我不相信它会拾取您在工作时添加的依赖项项目 - 但它非常适合进行初始设置 @matt b:每次依赖项发生变化时,您都需要重做 mvn eclipse:eclipse。 要补充 Buhb 所说的内容,请在命令行上执行 mnv eclipse:eclipse 并在每次向 pom.xml 添加更多 deps 时刷新 Eclipse 项目。 使用m2eclipse插件时不需要这个。 我正在使用 m2eclipse 插件,在将现有的 maven 项目导入 eclipse 后遇到了问题。执行mvn eclipse:cleanmvn eclipse:eclipse 实际上为我解决了问题。【参考方案3】:

我假设您使用的是您提到的 m2eclipse。但是,尚不清楚您是否在 Eclipse 下创建了项目,因此我将尝试涵盖所有情况。

    如果您在 Eclipse 下创建了“Java”项目(Ctrl+N > Java 项目),则在 Package Explorer 视图中右键单击该项目并转到 Maven > Enable Dependency Management(根据初始项目结构,您可能需要对其进行修改以匹配 maven 的结构,例如将src/java 添加到构建路径上的源文件夹) .

    如果您在 Eclipse 下创建了“Maven 项目”(Ctrl+N > Maven 项目),那么它应该已经“准备好 Maven”了。

    如果您在 Eclipse 之外创建了一个 Maven 项目(手动或使用原型),那么只需在 Eclipse 中导入它(右键单击 Package Explorer 查看并选择Import...> Maven Projects),它将是“Maven ready”。

现在,要添加依赖项,右键单击项目并选择 Maven > 添加依赖项)或手动编辑 pom。

PS:如果您使用的是 m2eclipse,请避免使用 maven-eclipse-plugin。绝对不需要它,它会令人困惑,它会产生一些混乱。不,真的,除非你真的知道自己在做什么,否则不要使用它。

【讨论】:

刚刚发现 maven-eclipse-plugin 是我奇怪的未解决依赖错误的原因。谢谢! 我只是使用从官方网站下载的EclipseNeon。。创建标准Java项目后,菜单中没有Maven选项。我们需要单独安装一些东西还是已经用Neon下载了所有东西? @Pascal Thivent,我已经导入了 Maven 项目。我找不到这个的解决方案【参考方案4】:

将此添加到 .classpath 文件..

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

谢谢

【讨论】:

是的,在过去的几年里,我需要在任何地方手动添加它......他们为什么不改进 eclipse 插件来自动识别 maven 依赖项?? 感谢您的解决方案。这对我有用。我不小心删除了 .project 和 .classpath 文件。这个解决方案对我有用,可以在类路径中添加 Maven 依赖项, 自动生成上述.classpath文件的快捷方式是Project ->Maven -> Update Project 否则直接Alt+F5 也为我工作。解决了我缺少的大部分依赖项,但仍然存在一些问题,所以我想知道更用户友好的解决方案是否不起作用,因为某处存在一个小错误(但这种行为无助于调试问题......) 【参考方案5】:

项目右键配置>转换为Maven项目

然后你可以看到你项目的所有 Maven 相关菜单。

【讨论】:

一开始没有创建mvn项目的正确方法【参考方案6】:

我确实喜欢这个..

右键项目-->配置-->转换为maven项目。 右键项目-->maven-->添加依赖。

【讨论】:

【参考方案7】:

在 Eclipse(火星)中转到:

项目属性 --> Maven。确保“解决工作区项目中的依赖项”禁用

【讨论】:

这并没有解决最初的问题,但是它确实解决了我几周以来一直存在的另一个烦人的问题 - 禁用该选项后,我的项目只能从 maven 命令行运行,是现在再次在 Eclipse 中运行!谢谢!【参考方案8】:

我没有找到 maven 或配置菜单,但找到了解决我的问题的以下按钮:

【讨论】:

【参考方案9】:

当m2eclipse正确安装后,它应该会自动添加依赖。 但是,您应该通过输入以下内容来生成 eclipse 项目文件:

mvn eclipse:m2eclipse

或者,如果您不使用 m2eclipse:

mvn eclipse:eclipse

【讨论】:

注意:由于 2.8 版 maven-eclipse-plugin 不再支持“eclipse:m2eclipse”(找不到原因/信息)【参考方案10】:

我有一个细微的变化导致了一些问题 - 一个项目中有多个子项目。在这种情况下,我需要进入每个包含 POM 的单独文件夹,执行 mvn eclipse:eclipse 命令,然后手动将类路径条目复制/合并到我的项目类路径文件中。

【讨论】:

【参考方案11】:

对于较新的 Eclipse 版本 (>=Mars) 右键单击​​项目 > 配置 > 转换为 Maven 项目

【讨论】:

【参考方案12】:

出于几个原因添加我的答案:

不知何故,列出的答案都没有直接解决我的问题。 在 Maven 下找不到“启用依赖项管理”。我在 2015 年 2 月 4 日星期三使用 Eclipse 4.4.2 build。

帮助我的是 Maven 下的另一个选项,称为“更新项目”,然后当我单击它时,会打开这个窗口,其中有一个复选框,上面写着“强制更新快照/发布”。我知道这个复选框的真正目的是不同的,但它以某种方式解决了依赖关系问题。

【讨论】:

【参考方案13】:

这些都没有解决我的问题。但我所做的是如果单击 pom.xml,底部有一个名为依赖项的选项卡。在此选项卡中,它分为 2 个部分,一个称为依赖项,另一个称为依赖项管理。选择依赖项部分中的所有内容,然后单击添加以处于依赖项管理控制之下。关闭并重新打开您的项目。

【讨论】:

【参考方案14】:

也许您可以查看 maven-eclipse-plugin 而不是 M2Eclipse。

您基本上将 maven-eclipse-plugin 配置添加到您的 pom.xml 中,然后执行 mvn eclipse:eclipse 这将为 Eclipse 生成所需的 .project.classpath 文件。然后您将在 Eclipse 中获得正确的构建路径。

【讨论】:

eclipse:eclipse 不好,将所有库一一添加到您的依赖项中,而不是依赖 Maven【参考方案15】:

确保您的 POM 遵循命名约定,并以小写字母命名为 pom.xml 而不是 POM.xml

在我的情况下一切正常,但 Eclipse 在尝试右键单击时仍然抱怨,Update project configuration - 告诉我无法读取 POM。将名称更改为小写 - pom.xmlPOM.xml - 并且有效。

【讨论】:

【参考方案16】:

我也遇到过这个问题。当我在pom.xml 中添加依赖项时,我检查了本地文件夹/Users/xyz/.m2/ 并且jar 已经下载到那里,但无法添加eclipse 的构建路径。

我的eclipse版本:Mars.2 Release (4.5.2) 右键单击项目 > Maven > 启用工作区分辨率 这解决了我的问题。

【讨论】:

【参考方案17】:

通常情况下,您可以从工作项目中复制 .classpath 文件,因为假设您的结构是标准 Maven 项目,这里没有任何特定项目。

【讨论】:

【参考方案18】:

这在 Eclipse Oxygen (4.7.0) 中对我有用:

右键单击 Project -> Maven -> 选择 Maven Profiles... 然后选中 Repository Proxy 框,按 OK。

【讨论】:

以上是关于如何配置 Eclipse 构建路径以使用 Maven 依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

如何在eclipse中配置构建路径条目

使用eclipse构建maven和发布maven的项目

eclipse 自带maven 配置在哪

eclipse mave 配置启动报错

如何配置 Eclipse 以运行外部构建器或 shell 命令?

使用maven构建springmvc-mybatis项目