如何在构buildpatheclipse中添加“Maven Managed Dependencies”库?

我创build了一个Maven项目,我想在Eclipse添加项目的构buildpath中的所有Maven依赖项。 当我去到项目的属性对话框中的Java构buildpath>添加库> Maven托pipe依赖项>下一步,它要求我使用“Maven项目设置”来configurationMaven依赖项parsing。

我的问题是如何添加当前构buildpath的Maven依赖关系?

从命令行input:

 mvn eclipse:eclipse 

这将把您在pom.xml中的所有依赖添加到eclipse中…

但是,如果你之前没有做过任何这样的事情,你可能需要做另外一个,一次只有一步。

closureseclipse,然后从shell运行以下命令:

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

样品:

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

如果你已经安装了m2e,并且这个项目已经是一个maven项目,但是maven的依赖关系仍然没有,最简单的方法是

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

Eclipse截图

我有使用SpringSource工具套件相同的问题。 我正在导入一个从命令行运行正常的Maven项目。 但是,当我导入项目使用导入 – > Maven – >现有的Maven项目,该项目没有导入正确的导入,我不能将mavenpipe理的依赖库添加到构buildpath。

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

我通过运行mvn eclipse:eclipse解决了这个问题,然后手动更新.classpath,以消除eclipse添加的M2_REPO依赖eclipse:eclipse并添加了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项目,并按预期工作。

这是一个黑客,我不知道什么其他的后果运行eclipse:ecplise有m2eclipse工作时。 但是它至less让我能够编译我的项目,所以我可以编写代码。


编辑1/4/2013

我上面发布的解决方法将暂时工作,我从来没有发现任何消极的副作用。 不过,我现在已经有了这个问题几次了,每一次问题都是maven接受的但是m2eclipse barfs上的那个部分。

所以我build议删除1的部分1,直到你可以成功的项目。 只要继续运行maven – >在每个pom编辑之后更新configuration,直到它应该如此。 我通常从一开始就删除插件configuration标记块,从最可疑的(即最复杂的)开始。

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

在我跑完之后,我会研究一下这个违规的configuration,试图找出“正确的”解决scheme(无论如何,依照m2eclipse)。

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

确保您的pom.xml中定义的打包策略不是“pom”。 它应该是“jar子”或其他任何东西。 一旦你这样做,更新你的项目,点击它,并转到Maven – >更新项目…

您可以安装M2Eclipse,并在Eclipse中将项目作为maven项目打开。 它将创build必要的configuration和条目。

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

  • 安装M2E插件。
  • 右键单击您的项目,然后selectconfiguration – >转换为Maven项目。

在这里输入图像说明

  • 然后一个pom.xml文件将显示在您的项目中。 双击pom.xml,selectDependency选项卡,添加项目所依赖的jar。

我可以弄清楚这个问题。 我在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文件并添加了以下内容并重新启动了eclipse

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

现在我可以看到“Maven Dependency”库自动包含在java构buildpath中。

如果Maven->更新项目不适合你? 这些是我宗教上遵循的步骤。 从Eclipse中删除项目(不要从工作区中删除)closuresEclipse进入命令行并运行这些命令。

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

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

希望这个作品。

如果你使用一个eclipse插件来完成你的maven任务(其中有2个:从sonatypeinputM2ecipse,在Google Code中input'official'和q4e),那么在上下文菜单中有一些选项(右键点击项目)那无痛的。

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

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

你也可以考虑将maven-dependency-plugin添加到你的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包”和maven将所有需要的依赖项复制到your_project_path / target / your_project_name / WEB-INF / lib /目录。 从那里你可以将它们复制到你的项目/ lib目录并添加为外部jar子(configuration您的项目设置构buildpath)