如何configurationEclipse构buildpath以使用Maven依赖关系?

我想利用Maven提供的用于pipe理项目中的依赖项的function。 我对Maven如何工作的简短理解是,它将获得所需的JAR,然后与这些库一起构build项目。

目前我有一个简单的POM文件设置为testing:

<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> 

通常,当pipe理项目的依赖关系时,我会将项目或JAR添加到项目构buildpath,然后能够构build我的项目。

但是在使用M2Eclipse时,依赖关系不会自动添加到构buildpath中。 有什么地方我需要configuration这个让Eclipse知道Maven正在pipe理依赖关系吗?

如果你右键点击你的项目,在“maven”下应该有一个选项来“启用依赖pipe理”。 而已。

如果你执行

 mvn eclipse:clean 

其次是

 mvn eclipse:eclipse 

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

我假设你正在使用m2eclipse,因为你提到它。 然而,不清楚你是否在Eclipse下创build你的项目,所以我会尽力涵盖所有的情况。

  1. 如果您在Eclipse(Ctrl + N> Java Project)下创build了一个“Java”项目,那么在Package Explorer视图中右键单击该项目,然后转到Maven> Enable Dependency Management (取决于最初的项目结构,它匹配maven的一个,例如通过添加src/java到源文件夹的构buildpath)。

  2. 如果你在Eclipse(Ctrl + N> Maven Project)下创build了一个“Maven Project”,那么它应该已经是“Maven ready”了。

  3. 如果您在Eclipse之外(手动或使用原型)创buildMaven项目,那么只需在Eclipse中导入它( 右键单击 Package Explorer视图,然后selectImport …> Maven Projects ),它将会是“Maven ready”。

现在,要添加一个依赖项, 右键单击该项目并selectMaven> Add Dependency )或手动编辑pom。

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

右键单击项目configuration>转换为Maven项目

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

我喜欢这个

右键单击项目 – >configuration – >转换为maven项目。 右键单击项目 – > maven – >添加依赖关系。

将此添加到.classpath文件..

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

谢谢

我没有findmaven或configuration菜单,但发现下面的button,解决了我的问题:

在这里输入图像说明

在Eclipse(火星)去:

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

当m2eclipse安装正确时,它应该自动添加依赖关系。 但是,您应该input以下内容来生成eclipse项目文件:

 mvn eclipse:m2eclipse 

或者,如果你不使用m2eclipse:

 mvn eclipse:eclipse 

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

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

在那里你基本上把maven-eclipse-pluginconfiguration添加到你的pom.xml中,然后执行mvn eclipse:eclipse ,它将为Eclipse生成所需的.project.classpath文件。 然后你将在Eclipse中拥有正确的构buildpath。

对于较新的Eclipse版本(> = Mars),右键单击project> configure> convert to Maven project

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

在我的情况是一切正常,但Eclipse仍然抱怨尝试右键单击并Update project configuration – 告诉我,POM无法读取。 将名称更改为小写 – 从POM.xml pom.xml – 它工作。

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

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

是什么帮助我Maven下的另一个选项叫做“更新项目”,然后当我点击它时,这个窗口打开,其中有一个checkbox“强制更新快照/发布”。 这个checkbox的真正目的是不同的我知道,但不知何故解决了依赖关系的问题。 在这里输入图像说明

我也遇到过这个问题。 当我在pom.xml添加依赖项时,我检查了本地文件夹/Users/xyz/.m2/并且已经下载了jar文件,但是不能添加eclipse的buildpath。

我的月食版本: Mars.2 Release(4.5.2)

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

这解决了我的问题。

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

这在Eclipse Oxygen(4.7.0)中适用于我:

右键点击Project – > Maven – >selectMaven Profiles …然后selectRepository Proxy框,按OK。