如何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你的项目,所以我会尽力涵盖所有的情况。
-
如果您在Eclipse(Ctrl + N> Java Project)下创build了一个“Java”项目,那么在Package Explorer视图中右键单击该项目,然后转到Maven> Enable Dependency Management (取决于最初的项目结构,它匹配maven的一个,例如通过添加
src/java
到源文件夹的构buildpath)。 -
如果你在Eclipse(Ctrl + N> Maven Project)下创build了一个“Maven Project”,那么它应该已经是“Maven ready”了。
-
如果您在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。