如何在构建路径eclipse中添加“Maven Managed Dependencies”库?

时间:2011-02-01 07:01:23

标签: java eclipse maven

我创建了一个Maven项目,我希望在Maven中的项目构建路径中添加所有Eclipse个依赖项。当我转到Java Build Path>添加库> Maven管理依赖关系>接下来在项目的属性对话框中,它要求我使用“Maven项目设置”来配置Maven依赖项解析。

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

16 个答案:

答案 0 :(得分: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

答案 1 :(得分:34)

如果您安装了m2e并且该项目已经是maven项目但仍然缺少maven依赖项,那么对我来说最简单的方法是

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

Eclipse screenshot

答案 2 :(得分:11)

使用SpringSource Tool Suite时遇到同样的问题。我正在导入一个从命令行运行良好的现有Maven项目。但是,当我使用import导入项目时 - &gt; Maven - &gt;现有的Maven项目,项目没有正确导入导入,我无法将maven托管依赖项库添加到构建路径。

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

我通过运行mvn eclipse:eclipse然后手动更新.classpath来消除由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会产生什么其他后果。但它确实至少允许我编译我的项目,所以我可以编写代码。


编辑1/4/2013

我上面发布的解决方法暂时有效,我从未发现任何负面影响。但是,我现在已经有过几次这个问题了,每次问题都是maven接受了pom的某些部分,但m2eclipse barfs就开始了。

因此,我建议您逐步删除部分pom,直到您可以成功地对项目进行整形。继续运行maven - &gt;每次pom编辑后更新配置,直到它按预期工作。我通常首先删除一个插件配置标记块,从最可疑的(即最复杂的)开始。

一旦它正常结合,你可以恢复它,它应该仍然按预期工作。

在我开始跑步之后,我会研究有问题的配置,试图弄清楚“正确的”修复是什么(根据m2eclipse,无论如何)。

希望这种方法能够带来永久的解决方案,而不是为了解决这个问题!

答案 3 :(得分:10)

确保您的pom.xml中定义的打包策略不是“pom”。它应该是“罐子”或其他任何东西。完成后,右键单击更新项目并转到Maven - &gt;更新项目......

答案 4 :(得分:7)

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

enter image description here

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

答案 5 :(得分:6)

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

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

答案 6 :(得分:2)

我可以找出问题所在。我在启动日食时得到了警告。

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

现在我可以在java构建路径中自动看到“Maven Dependency”库。

答案 7 :(得分:2)

如果Maven-&gt;更新项目不适合您? 这些是我虔诚遵循的步骤。 从eclipse中删除项目(不要从工作区中删除它) 关闭Eclipse 转到命令行并运行这些命令。

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

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

希望这有效。

答案 8 :(得分:2)

如果导入了现有的maven项目,并且Eclipse的构建路径中未显示Maven依赖项,则右键单击project-> Maven->'update Project'将解决此问题。

答案 9 :(得分:1)

如果您不小心从Library中删除了Maven依赖项。在pom.xml中添加以下内容

<build>     
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
</build>

答案 10 :(得分:0)

如果你使用eclipse插件来完成你的maven任务(其中有2个:来自sonatype的M2ecipse,'官方'和Google Code上的q4e)那么,在上下文菜单中有选项(右键单击项目)无痛地做到这一点。

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

答案 11 :(得分:0)

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

答案 12 :(得分:0)

您还可以考虑使用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>

比你可以运行&#34; mvn package&#34;并且maven会将所有需要的依赖项复制到your_project_path / target / your_project_name / WEB-INF / lib /目录。从那里你可以将它们复制到你的project / lib目录并添加为外部jar(配置项目设置buildpath)

答案 13 :(得分:0)

请按照以下步骤操作

1)进入项目类路径

2)进入图书馆标签

3)点击添加图书馆

4)在打开的对话框中选择Maven Managed Dependencies

5)点击下一步

6)在新对话框中,单击“管理项目设置”

7)在打开的对话框中,选中“从工作区解析依赖关系”复选框

8)点击恢复默认值

9)它将执行一些过程,您现在将在库中拥有所有依赖项。

答案 14 :(得分:0)

非常简单但最好的方法是使用类似的方法手动编辑项目文件夹根目录下的.classpath文件

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

当您想在WEB-IN / lib文件夹中放置jar时(对于Web应用程序而言)

答案 15 :(得分:0)

如果这还没有创建为 Maven 项目,但您需要添加 Maven 依赖项,则右键单击项目 -> 配置 -> 转换为 Maven 项目。

这会将 pom.xml 文件添加到您的项目中。

如果pom.xml文件已经存在,说明已经是Maven项目,可以直接在pom.xml中添加依赖

现在要执行与 Maven 相关的任何其他操作,您可以右键单击项目并单击 Maven