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


124

我想利用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正在管理依赖项?

Answers:


116

如果右键单击项目,则在“行”下应有一个“启用依赖项管理”选项。而已。


2
如果导入使用mvn eclipse:eclipse创建的项目,则默认情况下,m2eclipse不会执行此操作,因此这似乎总是使人们感到沮丧。
马特b 2010年

28
实际上已经为我的项目启用了它。也许是因为我选择将POM文件添加到现有项目中?但是,执行Maven>更新项目配置似乎已为我修复了该问题。同样是您的回答,最终使我发现了可以修复项目的工具栏。非常感谢
James Goodwin 2010年

12
即使我似乎已经安装了m2eclipse,如果右键单击菜单中没有“ Maven”选项,该怎么办?
dfrankow 2012年

85
啊,“配置” =>“转换为Maven项目”是您的朋友!
dfrankow 2012年

2
@dfrankow如果“配置” =>“转换为Maven项目”选项不存在怎么办?
vasilakisfil

67

如果执行

mvn eclipse:clean

其次是

mvn eclipse:eclipse

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


请注意,这通过使用类路径变量(M2_REPO)来引用您的依赖项而起作用,它不使用m2eclipse,并且我不相信它会在您处理项目时拾取和添加依赖项-但对于获取初始设置去
亚光b

@matt b:每次依赖项更改时,都需要重做mvn eclipse:eclipse。
Buhb 2010年

要添加Buhb所说的内容,请在命令行上执行mnv eclipse:eclipse,并在每次向pom.xml中添加更多deps时刷新Eclipse项目。
Binil Thomas

5
使用m2eclipse插件时无需这样做。
Pascal Thivent,2010年

3
我正在使用m2eclipse插件,将现有的maven项目导入eclipse后遇到了问题。这样做mvn eclipse:cleanmvn eclipse:eclipse真正解决了问题对我来说。
aioobe

29

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

  1. 如果您在Eclipse下创建了一个“ Java”项目(Ctrl + N> Java项目),则在Package Explorer视图中右键单击该项目 ,然后转到Maven> Enable Dependency Management(取决于初始项目结构,您可能已对其进行了修改。使其与Maven的文件相匹配(例如,通过添加到构建路径中的源文件夹)。src/java

  2. 如果您在Eclipse下创建了“ Maven项目”(Ctrl + N> Maven项目),则它应该已经“ Maven就绪”。

  3. 如果你创建的Eclipse(手动或使用原型),然后简单地之外的Maven项目导入它在Eclipse(右键单击包资源管理器视图,并选择导入...> Maven项目),这将是“Maven的准备”。

现在,要添加依赖项,请右键单击该项目,然后选择Maven> Add Dependency或手动编辑pom。

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


2
刚发现maven-eclipse-plugin是我奇怪的未解决的依赖项错误的原因。谢谢!
vaughan

1
我只使用从官方网站下载的EclipseNeon。创建标准Java项目后,菜单中没有Maven选项。我们需要单独安装某些东西还是使用Neon下载了所有内容?
Ewoks

@Pascal Thivent,我已经导入了Maven项目。我找不到这个解决方案
Syed

19

将此添加到.classpath文件..

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

谢谢


1
是的,最近几年我需要在任何地方手动添加它。...为什么他们不使用eclipse插件自动识别Maven依赖项?
剃刀

1
感谢您的解决方案。这对我有用。我不小心删除了.project和.classpath文件。这个解决方案对我来说很有效,可以在类路径中添加Maven依赖项
Tahir Mehmood,

在.classpath文件上方自动生成的快捷方式是Project-> Maven-> Update Project,否则只需Alt + F5
Venkateswara Rao

也为我工作。解决了我大多数缺少的依赖项,但仍然有一些问题,所以我想知道是否更方便用户的解决方案不起作用,因为某处存在一个小错误(但是此行为无助于调试问题...)
xenoid

14

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

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


正确的方法,如果您没有首先创建mvn项目
Hannes Schneidermayer

10

我确实喜欢这个

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


5

在Eclipse(火星)中,转到:

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


这并没有解决原始问题,但是却解决了我已经困扰了几个星期的另一个问题-禁用该选项后,仅从maven命令行运行的项目现在在eclipse中再次运行!谢谢!
Bill Hileman '18

4

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

在此处输入图片说明


2

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

mvn eclipse:m2eclipse

或者,或者,如果您不使用m2eclipse:

mvn eclipse:eclipse

3
注意:由于2.8版maven-eclipse-plugin不再支持“ eclipse:m2eclipse”(找不到原因/信息,原因)
Wolkenarchitekt 2010年

1

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


1

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


1

添加我的答案有两个原因:

  • 以某种方式列出的答案都不能直接解决我的问题。
  • 我在Maven下找不到“启用依赖项管理”。我正在2015年2月4日星期三使用Eclipse 4.4.2构建。

帮助我的是Maven下的另一个选项,称为“更新项目”,然后单击该窗口时,该窗口打开,其中有一个复选框,显示“强制更新快照/发布”。我知道这个复选框的真正目的是不同的,但是以某种方式它解决了依赖性问题。 在此处输入图片说明


1

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


0

也许您可以研究一下maven-eclipse-plugin而不是M2Eclipse。

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


eclipse:eclipse不好,将所有库一一添加到依赖项中,而不是依赖于Maven
razor

0

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

就我而言,一切都是正确的,但是Eclipse在尝试右键单击时仍然抱怨,并且Update project configuration-告诉我无法读取POM。将名称更改为小写- pom.xmlPOM.xml-起作用。


0

我也遇到了这个问题。当我在中添加依赖项时pom.xml,我签入了本地文件夹/Users/xyz/.m2/,并且jars已经下载到那里,但是无法添加eclipse的buildpath。

我的Eclipse版本:Mars.2版本(4.5.2)

右键单击项目 > Maven > 启用工作区分辨率

,这解决了我的问题。


0

通常,您可以从正在运行的项目中复制.classpath文件,因为假设您被构造为标准Maven项目,则此处没有特定的项目。


0

这在Eclipse Oxygen(4.7.0)中为我工作:

右键单击“项目”->“ Maven”->“选择Maven配置文件...”,然后选中“存储库代理”框,然后按“确定”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.