我想利用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正在管理依赖项吗?
18 回答
如果右键单击项目,“maven”下应该有一个“启用依赖关系管理”的选项 . 而已 .
如果你执行
其次是
如果你准备eclipse
.classpath
文件 . 也就是说,这些命令是从命令行(即eclipse之外)对maven运行的 .我假设你正在使用m2eclipse,因为你提到它 . 但是,您是否在Eclipse下创建项目尚不清楚,因此我将尝试涵盖所有案例 .
如果您在Eclipse下创建了"Java"项目(Ctrl N> Java项目),那么 Package Explorer 视图中的 right-click 项目并转到 Maven > Enable Dependency Management (根据初始项目结构,您可能会修改它以匹配maven的项目,例如通过将
src/java
添加到构建路径上的源文件夹中) .如果您在Eclipse(Ctrl N> Maven Project)下创建了“Maven项目”,那么它应该已经“Maven ready”了 .
如果您在Eclipse之外创建了一个Maven项目(手动或使用原型),那么只需在Eclipse中导入它( right-click Package Explorer 视图并选择 Import... > Maven Projects ),它就是"Maven ready" .
现在,要添加依赖项,要么 right-click 项目并选择 Maven > Add Dependency )或手动编辑pom .
PS:如果你使用m2eclipse,请避免使用maven-eclipse-plugin . 绝对没有必要,它会令人困惑,它会产生一些混乱 . 不,真的,不要使用它,除非你真的知道你在做什么 .
右键单击项目Configure> convert to Maven project
然后,您可以看到所有与Maven相关的菜单项目 .
将其添加到.classpath文件中..
谢谢
我确实喜欢这个..
右键单击项目 - > configure - >转换为maven项目 . 右键单击项目 - > maven - >添加依赖项 .
在Eclipse(火星)中去:
项目属性 - > Maven . 确保"Resolve dependencies from workspace projects"是 disabled .
我没有找到maven或配置菜单,但发现以下按钮解决了我的问题:
当m2eclipse正确安装时,它应该自动添加依赖项 . 但是,您应该输入以下命令来生成eclipse项目文件:
或者,如果你不使用m2eclipse:
我有一些轻微的变化导致了一些问题 - 一个项目中的多个子项目 . 在这种情况下,我需要进入包含POM的每个单独的文件夹,执行mvn eclipse:eclipse命令,然后手动将类路径条目复制/合并到我的项目类路径文件中 .
对于较新的Eclipse版本(> = Mars),右键单击项目> configure>转换为Maven项目
添加我的答案有几个原因:
不知怎的,所列出的答案都没有直接解决我的问题 .
我在2015年2月4日星期三使用Eclipse 4.4.2构建时无法't find 2547927 under Maven. I' .
帮助我的是Maven下的另一个选项叫"Update Project"然后当我点击它时会打开这个窗口,其中有一个复选框,上面写着"Force update of Snapshot/Releases" . 这个复选框的真正目的是不同我知道,但它以某种方式解决了依赖问题 .
这些都没有解决我的问题 . 但我所做的就是点击pom.xml,底部有一个名为dependencies的标签 . 在此选项卡中,它分为2个部分,一个称为依赖项,另一个称为依赖项管理 . 选择依赖项部分中的所有内容,然后单击“添加”以在依赖项管理控件下 . 关闭并重新打开您的项目 .
也许你可以调查maven-eclipse-plugin而不是M2Eclipse .
你基本上将maven-eclipse-plugin配置添加到你的pom.xml然后执行
mvn eclipse:eclipse
为Eclipse生成所需的.project
和.classpath
文件 . 然后,您将在Eclipse中拥有正确的构建路径 .确保您的POM遵循命名约定,并以小写字母命名为
pom.xml
和NOTPOM.xml
.在我的情况下,一切都是正确的,但是Eclipse在尝试右键单击时仍然抱怨并且
Update project configuration
- 告诉我POM无法读取 . 将名称更改为小写 -pom.xml
来自POM.xml
- 并且它有效 .我也遇到过这个问题 . 当我在
pom.xml
中添加依赖项时,我检查了本地文件夹/Users/xyz/.m2/
并且已经在那里下载了jar,但是无法添加eclipse的构建路径 .我的日食版: Mars.2 Release (4.5.2)
right click project > Maven > Enable Workspace Resolution
这解决了我的问题 .
通常,您可以从工作项目中复制.classpath文件,因为这里没有任何项目特定的假设您将结构化为标准Maven项目 .
这在Eclipse Oxygen(4.7.0)中对我有用:
右键单击Project - > Maven - >选择Maven Profiles ...然后选中Repository Proxy框,按OK .