我想利用 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 正在管理依赖项?
如果您右键单击您的项目,“maven”下应该有一个“启用依赖项管理”选项。而已。
如果你执行
mvn eclipse:clean
其次是
mvn eclipse:eclipse
if 将为您准备 eclipse .classpath
文件。也就是说,这些命令是从命令行(即在 Eclipse 之外)针对 maven 运行的。
mvn eclipse:clean
和 mvn eclipse:eclipse
实际上为我解决了问题。
我假设您使用的是您提到的 m2eclipse。但是不清楚您是否在 Eclipse 下创建了项目,因此我将尝试涵盖所有情况。
如果您在 Eclipse 下创建了一个“Java”项目(Ctrl+N > Java Project),然后在 Package Explorer 视图中右键单击该项目并转到 Maven > Enable Dependency Management(取决于初始项目结构,您可能已经修改它与 maven 的匹配,例如通过将 src/java 添加到构建路径上的源文件夹)。如果您在 Eclipse 下创建了“Maven 项目”(Ctrl+N > Maven 项目),那么它应该已经“准备好 Maven”了。如果您在 Eclipse 之外创建了一个 Maven 项目(手动或使用原型),那么只需将其导入 Eclipse(右键单击 Package Explorer 视图并选择 Import...> Maven Projects),它将“准备好 Maven”。
现在,要添加依赖项,请右键单击项目并选择 Maven > 添加依赖项)或手动编辑 pom。
PS:如果您使用的是 m2eclipse,请避免使用 maven-eclipse-plugin。绝对不需要它,它会令人困惑,它会产生一些混乱。不,真的,除非你真的知道自己在做什么,否则不要使用它。
将此添加到 .classpath 文件..
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
谢谢
右键单击项目配置>转换为Maven项目
然后你可以看到你项目的所有 Maven 相关菜单。
我是这样的。。
右键项目——>配置——>转换为maven项目。右键项目-->maven-->添加依赖。
在 Eclipse(火星)中,转到:
项目属性 --> Maven。确保禁用“解决工作区项目的依赖关系”。
我没有找到 maven 或配置菜单,但找到了解决我的问题的以下按钮:
https://i.stack.imgur.com/HpRvA.jpg
正确安装 m2eclipse 后,它应该会自动添加依赖项。但是,您应该通过输入以下命令生成 eclipse 项目文件:
mvn eclipse:m2eclipse
或者,如果您不使用 m2eclipse:
mvn eclipse:eclipse
我有一个细微的变化导致了一些问题——一个项目中有多个子项目。在这种情况下,我需要进入每个包含 POM 的单独文件夹,执行 mvn eclipse:eclipse 命令,然后手动将类路径条目复制/合并到我的项目类路径文件中。
对于较新的 Eclipse 版本 (>=Mars) 右键单击项目 > 配置 > 转换为 Maven 项目
添加我的答案有几个原因:
不知何故,列出的答案都没有直接解决我的问题。
我在 Maven 下找不到“启用依赖管理”。我在 2015 年 2 月 4 日星期三使用 Eclipse 4.4.2 构建。
https://i.stack.imgur.com/wVBdl.png
这些都没有解决我的问题。但我所做的是如果单击 pom.xml,底部有一个名为依赖项的选项卡。在此选项卡中,它分为 2 个部分,一个称为依赖项,另一个称为依赖项管理。选择依赖项部分中的所有内容,然后单击添加以处于依赖项管理控制之下。关闭并重新打开您的项目。
也许您可以查看 maven-eclipse-plugin 而不是 M2Eclipse。
基本上,您将 maven-eclipse-plugin 配置添加到您的 pom.xml,然后执行 mvn eclipse:eclipse
,这将为 Eclipse 生成所需的 .project
和 .classpath
文件。然后,您将在 Eclipse 中拥有正确的构建路径。
确保您的 POM 遵循命名约定,并以小写字母命名为 pom.xml
而不是 POM.xml
。
在我的情况下,一切都是正确的,但 Eclipse 在尝试右键单击和 Update project configuration
时仍然抱怨 - 告诉我无法读取 POM。将名称更改为小写 - pom.xml
从 POM.xml
- 它工作。
我也遇到了这个问题。当我在 pom.xml
中添加依赖项时,我签入了本地文件夹 /Users/xyz/.m2/
,并且 jar 已经下载到那里,但无法添加 eclipse 的构建路径。
我的 Eclipse 版本:Mars.2 Release (4.5.2) 右键单击项目 > Maven > 启用工作区分辨率这解决了我的问题。
通常,您可以从工作项目中复制 .classpath 文件,因为假设您的结构是标准 Maven 项目,这里没有任何特定的项目。
这在 Eclipse Oxygen (4.7.0) 中对我有用:
右键单击 Project -> Maven -> 选择 Maven Profiles... 然后选中 Repository Proxy 框,按 OK。