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

时间:2010-01-10 13:56:01

标签: java eclipse maven-2 ide m2eclipse

我想利用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 个答案:

答案 0 :(得分:107)

如果右键单击项目,“maven”下应该有一个“启用依赖关系管理”的选项。就是这样。

答案 1 :(得分:61)

如果你执行

mvn eclipse:clean

接着是

mvn eclipse:eclipse

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

答案 2 :(得分:28)

我假设您正在使用m2eclipse,因为您提到它。但是,您是否在Eclipse下创建项目尚不清楚,因此我将尝试涵盖所有案例。

  1. 如果您在Eclipse下创建了一个“Java”项目(Ctrl + N&gt; Java Project),那么右键单击 Package Explorer 中的项目查看并转到 Maven&gt;启用依赖关系管理(根据初始项目结构,您可以修改它以匹配maven的一个,例如通过将src/java添加到构建路径上的源文件夹)。

  2. 如果您在Eclipse下创建了“Maven项目”(Ctrl + N&gt; Maven项目),那么它应该已经“Maven ready”。

  3. 如果您在Eclipse之外创建了一个Maven项目(手动或使用原型),那么只需在Eclipse中导入右键单击 Package Explorer 查看并选择导入...&gt; Maven项目),它将是“Maven ready”。

  4. 现在,要添加依赖项,右键单击项目,然后选择 Maven&gt;添加依赖)或手动编辑pom。

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

答案 3 :(得分:14)

右键单击项目Configure&gt;转换为Maven项目

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

答案 4 :(得分:14)

将此添加到.classpath文件..

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

THX

答案 5 :(得分:9)

我确实喜欢这个..

右键点击该项目 - &gt; configure - &gt;转换为maven项目。 右键单击项目 - &gt; maven - &gt;添加依赖项。

答案 6 :(得分:5)

在Eclipse(火星)中转到:

项目属性 - &gt; Maven的。确保&#34;解决工作区项目中的依赖关系&#34; 已停用

答案 7 :(得分:4)

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

enter image description here

答案 8 :(得分:2)

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

mvn eclipse:m2eclipse

或者,如果你不使用m2eclipse:

mvn eclipse:eclipse

答案 9 :(得分:1)

这些都没有解决我的问题。但我所做的就是点击pom.xml,底部有一个名为dependencies的标签。在此选项卡中,它分为2个部分,一个称为依赖项,另一个称为依赖项管理。选择依赖项部分中的所有内容,然后单击“添加”以在依赖项管理控件下。关闭并重新打开你的项目。

答案 10 :(得分:1)

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

  • 不知怎的,所列答案都没有直接解决我的问题。
  • 我无法找到&#34;启用依赖关系管理&#34;在Maven下。我在2015年2月4日星期三使用Eclipse 4.4.2构建。

帮助我的是Maven下的另一个选项叫做&#34;更新项目&#34;然后当我点击它时,会打开一个窗口,其中有一个复选框,上面写着&#34;强制更新快照/版本&#34;。这个复选框的真正目的是不同我知道,但它以某种方式解决了依赖问题。 enter image description here

答案 11 :(得分:1)

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

答案 12 :(得分:1)

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

答案 13 :(得分:0)

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

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

答案 14 :(得分:0)

我也遇到了这个问题。当我在//this is called a PLT stub and it's actually assembly static myfnptr_t real_addr; if (real_addr) real_addr(args...); else if(0==(real_addr = call_dynamic_linker(symbol_name)) print_error_and_exit_program(); 中添加依赖项时,我检查了本地文件夹pom.xml并且已经在那里下载了jar,但是没有添加eclipse的构建路径。

我的日食版本: Mars.2发布(4.5.2)

右键单击项目&gt; Maven &gt; 启用工作区解析

这解决了我的问题。

答案 15 :(得分:0)

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

答案 16 :(得分:0)

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

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

答案 17 :(得分:0)

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

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