2011-02-01 357 views
57

我已经创建了一个Maven项目,并且我想在Eclipse中的项目构建路径中添加所有Maven依赖关系。当我在项目的属性对话框中选择Java Build Path> Add Library> Maven Managed Dependency> Next时,它会要求我使用“Maven Project Setting”来配置Maven依赖关系解析。如何在构建路径eclipse中添加“Maven Managed Dependencies”库?

我的问题是如何在当前构建路径中添加Maven依赖关系?

回答

46

在命令行中键入:

mvn eclipse:eclipse 

这将增加你在你的pom.xml到Eclipse有依赖性...

然而

,如果你没有做任何的这个在你可能需要做另一个之前,一次只有一步。

关闭Eclipse,然后从shell中运行以下命令:

mvn -Declipse.workspace=<eclipse workspace> eclipse:add-maven-repo 

样本:

mvn -Declipse.workspace=/home/ft/workspaces/wksp1/ eclipse:add-maven-repo 
+8

[eclipse:add-maven-repo](http://maven.apache.org/plugins/maven-eclipse-plugin/add-maven-repo-mojo.html)已被弃用,以支持[ eclipse:configure-workspace](http://maven.apache.org/plugins/maven-eclipse-plugin/configure-workspace-mojo.html) – msrxthr 2012-08-03 14:56:22

+26

您可能需要这样做:“右键单击项目> Maven> Update项目“获取Maven依赖关系已启用...它为我工作,请参阅http://stackoverflow.com/questions/2037188/how-to-configure-eclipse-build-path-to-use-maven-dependencies – 2012-08-22 13:04:32

+0

@AdrienBe它对我也有效 – 2013-01-12 21:43:35

6

您可以安装M2Eclipse并打开该项目作为Eclipse中的Maven项目。它将创建必要的配置和条目。

这对于后续对pom的更新也很有用。使用maven eclipse插件,您需要手动重新生成每个更改的eclipse配置。

+0

链接不工作。 – vaibhavcool20 2015-07-25 06:47:47

0

如果您使用eclipse插件来完成您的maven任务(其中有2个:从sonatype输入'official'和Google Code的q4e的M2ecipse),然后在上下文菜单中有选项(右键单击项目)无痛地做到这一点。

您可以在eclipse工作台中同时运行两个插件,并在每个项目的基础上无差别地使用它们。

2

我可以找出问题所在。我在eclipse启动时收到以下警告。

The Maven Integration requires that Eclipse be running in a JDK, because a number of Maven core plugins are using jars from the JDk. 

Please make sure the -vm option in eclipse.ini is pointing to a JDK and verify that 
Installed JRE's are also using JDK installs 

我改变eclipse.ini文件,并添加以下内容并重新启动日食

-vm 
C:/Program Files/java/jdk1.6.0_21/bin/javaw.exe 

现在我可以看到“Maven的依赖”库自动在Java构建路径包括在内。

11

我有使用SpringSource工具套件相同的问题。我正在导入一个现有的Maven项目,该项目在命令行中运行良好。但是,当我使用导入 - > Maven - >现有的Maven项目导入项目时,该项目没有正确导入导入,并且我无法将Maven托管依赖库添加到构建路径。

如果我从命令行运行mvn install,项目成功建立。如果我运行mvn eclipse:eclipse然后导入到STS中,那么一切都按预期工作,除非我每次更新pom时都必须重新运行它,这是不可取的。

我通过运行mvn eclipse:eclipse然后手动更新来解决这个问题。通过类路径来eclipse:eclipse消除添加的M2_REPO依赖关系,并添加m2eclipse的依赖项:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> 
    <attributes> 
    <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
    </attributes> 
</classpathentry> 

于是我进口的现有Maven项目和它的工作如预期。

这是一个黑客攻击,我不确定在使用m2eclipse时运行eclipse:ecplise会产生什么后果。但它至少让我能够编译我的项目,所以我可以编写代码。


编辑2013年1月4日

我上面贴的解决方法将暂时无法工作,我从来没有发现任何副作用。然而,我现在已经有过这个问题几次了,每次问题是maven接受一些pom部分,但是m2eclipse barfs就是这样。

因此,我建议删除部分的pom 1,直到您可以成功地实现项目。只要继续运行maven - >在每个pom编辑之后更新配置,直到它按照它应该的方式工作。我通常先从最可疑的(即最复杂的)开始,一次删除一个插件配置标记块。

一旦它正确运行,您可以恢复POM,它应该仍然按预期工作。

当我运行后,我会研究有问题的配置以试图找出'正确的'修正(依据m2eclipse,无论如何)。

希望这种方法导致永久的解决方案,而不是解决一个hacky的解决方法!

0

尝试:右键单击您的项目 - > Maven->禁用依赖管理。 并重新启用依赖关系管理。

30

如果您已经安装m2e,该项目已经是一个Maven项目,但Maven依赖仍然下落不明,为我工作的最简单的方法是

  • 右键单击该项目,
  • 的Maven,
  • 更新项目...

Eclipse screenshot

2

如果Maven-> Update Project不适合你? 这些是我宗教上遵循的步骤。 从eclipse中删除项目(不要从工作区删除它) 关闭Eclipse 转到命令行并运行这些命令。

mvn eclipse:clean 
mvn eclipse:eclipse -Dwtpversion=2.0 

打开Eclipse 导入现有的Maven项目。 您将在我们的项目中看到maven依赖项。

希望这个工程。

9

确保您在pom.xml中定义的打包策略不是“pom”。它应该是“罐子”或其他任何东西。一旦你这样做,更新您的项目右键单击它,去的Maven - >更新项目...

0

你也考虑到Maven的依赖,插件的POM:

<plugins> 
... 
    <plugin> 
     <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>process-resources</phase> 
        <goals> 
         <goal>copy-dependencies</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}/lib</outputDirectory> 
        </configuration> 
       </execution> 
      </executions> 
    </plugin> 
... 
</plugins> 

比你可以运行“mvn package”,maven会将所有需要的依赖项复制到your_project_path/target/your_project_name/WEB-INF/lib /目录下。从那里你可以将它们复制到你的项目/ lib目录并添加为外部罐子(配置你的项目设置buildpath)

6
  • 安装M2E插件。
  • 右键单击您的项目,然后选择配置 - >转换为Maven项目。

enter image description here

  • 然后一个pom.xml文件将在您的项目出现。双击pom.xml,选择Dependency选项卡以添加项目所依赖的jar。