ChatGPT解决这个技术问题 Extra ChatGPT

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

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


B
Buhb

如果您右键单击您的项目,“maven”下应该有一个“启用依赖项管理”选项。而已。


如果您导入使用 mvn eclipse:eclipse 创建的项目,m2eclipse 默认不会执行此操作,因此这似乎总是让人绊倒。
它实际上已经为我的项目启用了。也许是因为我选择将 POM 文件添加到现有项目中?然而,做 Maven > 更新项目配置似乎已经为我修复了它。同样,正是您的回答最终使我发现了可以修复项目的工具栏。非常感谢
如果右键菜单中没有“Maven”选项怎么办,即使我似乎安装了 m2eclipse?
啊,“配置”=>“转换为 Maven 项目”是你的朋友!
@dfrankow 如果“配置”=>“转换为 Maven 项目”选项不存在怎么办?
d
davek

如果你执行

mvn eclipse:clean

其次是

mvn eclipse:eclipse

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


请注意,这是通过使用类路径变量 (M2_REPO) 来引用您的依赖项来工作的,它不使用 m2eclipse,我不相信它会拾取您在项目上工作时添加的依赖项 - 但它非常适合获取初始设置正在进行
@matt b:每次依赖项更改时,您都需要重做 mvn eclipse:eclipse 。
为了补充 Buhb 所说的内容,请在命令行上执行 mnv eclipse:eclipse 并在每次向 pom.xml 添加更多 deps 时刷新 Eclipse 项目。
使用 m2eclipse 插件时不需要这个。
我正在使用 m2eclipse 插件,在将现有的 maven 项目导入 eclipse 后遇到了问题。执行 mvn eclipse:cleanmvn eclipse:eclipse 实际上为我解决了问题。
P
Pascal Thivent

我假设您使用的是您提到的 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。绝对不需要它,它会令人困惑,它会产生一些混乱。不,真的,除非你真的知道自己在做什么,否则不要使用它。


刚刚发现 maven-eclipse-plugin 是我奇怪的未解决依赖错误的原因。谢谢!
我只是使用从官方网站下载的 EclipseNeon。创建标准 java 项目后,菜单中没有 Maven 选项。我们需要单独安装一些东西还是已经用 Neon 下载了所有东西?
@Pascal Thivent,我已经导入了 Maven 项目。我找不到这个的解决方案
A
Apurva Singh

将此添加到 .classpath 文件..

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

谢谢


是的,在过去的几年里,我需要在任何地方手动添加它......为什么他们不改进 eclipse 插件来自动识别 maven 依赖项?
感谢您提供此解决方案。这对我有用。我不小心删除了 .project 和 .classpath 文件。这个解决方案对我有用,可以在类路径中添加 Maven 依赖项,
自动生成上述 .classpath 文件的快捷方式是 Project ->Maven -> Update Project 否则只需 Alt+F5
也为我工作。解决了我缺少的大部分依赖项,但仍然存在一些问题,所以我想知道更用户友好的解决方案是否不起作用,因为某处存在一个小错误(但这种行为无助于调试问题......)
D
DevJav

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

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


如果您一开始没有创建 mvn 项目,那么正确的方法
m
madhu_karnati

我是这样的。。

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


T
Thomas Beer

在 Eclipse(火星)中,转到:

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


这并没有解决最初的问题,但是它确实解决了我几周来一直困扰的另一个问题 - 在禁用该选项后,我的项目(仅从 maven 命令行运行)现在在 eclipse 中再次运行!谢谢!
b
borjab

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

https://i.stack.imgur.com/HpRvA.jpg


E
EJB

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

mvn eclipse:m2eclipse

或者,如果您不使用 m2eclipse:

mvn eclipse:eclipse

注意:由于 2.8 版 maven-eclipse-plugin 不再支持“eclipse:m2eclipse”(找不到原因/信息)
M
Mearde

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


J
JBoy

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


S
Saurabh Patil

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

不知何故,列出的答案都没有直接解决我的问题。

我在 Maven 下找不到“启用依赖管理”。我在 2015 年 2 月 4 日星期三使用 Eclipse 4.4.2 构建。

https://i.stack.imgur.com/wVBdl.png


a
amralieg

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


J
Juha Syrjälä

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

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


eclipse:eclipse不好,将所有库一一添加到您的依赖项中,而不是依赖Maven
k
kenny_k

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

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


E
Eddy

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

我的 Eclipse 版本:Mars.2 Release (4.5.2) 右键单击项目 > Maven > 启用工作区分辨率这解决了我的问题。


P
Puneet Lamba

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


r
r590

这在 Eclipse Oxygen (4.7.0) 中对我有用:

右键单击 Project -> Maven -> 选择 Maven Profiles... 然后选中 Repository Proxy 框,按 OK。