【问题标题】:How to add "Maven Managed Dependencies" library in build path eclipse?如何在构建路径 Eclipse 中添加“Maven Managed Dependencies”库?
【发布时间】:2011-06-19 02:11:55
【问题描述】:

我创建了一个Maven 项目,我想在Eclipse 的项目构建路径中添加所有Maven 依赖项。当我在项目的属性对话框中转到 Java Build Path > Add Library > Maven Managed Dependency > Next 时,它要求我使用“Maven Project Setting”来配置 Maven 依赖项解析。

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

【问题讨论】:

  • 如果这还没有被创建为 Maven 项目,但您需要添加 Maven 依赖项,然后右键单击项目 -> 配置 -> 转换为 Maven 项目,这会将 pom.xml 添加到您的项目中你可以配置maven依赖。

标签: java eclipse maven


【解决方案1】:

从命令行输入:

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

【讨论】:

  • eclipse:add-maven-repo 已被弃用,取而代之的是 eclipse:configure-workspace
  • 您可能需要执行以下操作:“单击项目 > Maven > 更新项目”以启用 Maven 依赖项...它对我有用,请参阅 stackoverflow.com/questions/2037188/…
  • 如果您使用的是 M2Eclipse,则 eclipse:eclipse 无法正常运行,并且您可能需要在更改依赖项时重新运行。通常,您的 pom 中存在一些 M2Eclipse 不喜欢您需要查找的问题。我在我的回答中发布了一个解决方法,可能会让你暂时离开,但解决方案是找到根本原因。
【解决方案2】:

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

  • 右键单击项目,
  • 马文,
  • 更新项目...

【讨论】:

  • 意外地从我的构建路径而不是我的部署程序集中删除了 Maven 依赖项,并且无法恢复它们。这为我节省了一个小时和头痛!
  • 像魅力一样为我工作
  • 不起作用,如果我添加 Maven 托管依赖项(在 Java Build Path->Libraries 下添加库),没有任何反应.....
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    我在使用 SpringSource Tool Suite 时遇到了同样的问题。我正在导入一个从命令行运行良好的现有 Maven 项目。但是,当我使用 import -> Maven -> existing Maven project 导入项目时,项目没有正确导入 import 并且我无法将 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 项目,它按预期工作。

    这是一个 hack,我不确定在使用 m2eclipse 时运行 eclipse:ecplise 会产生什么其他后果。但它至少让我可以编译我的项目,这样我就可以开始编码了。


    2013 年 1 月 4 日编辑

    我在上面发布的解决方法将暂时起作用,我从未发现任何负面影响。但是,我现在已经遇到过几次这个问题,每次问题都是 maven 接受 pom 的某些部分,但 m2eclipse barfs 开启。

    因此,我建议您将部分 pom 1 1 删除,直到您可以成功地对项目进行 mavenize。只需在每次 pom 编辑后继续运行 maven -> update configuration 直到它正常工作。我通常从删除插件配置标签块开始,从最可疑的(即最复杂的)开始。

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

    在我开始运行后,我会研究有问题的配置以试图找出“正确”的修复方法是什么(无论如何,根据 m2eclipse)。

    希望这种方法能带来永久的解决方案,而不是满足于一个骇人听闻的解决方法!

    【讨论】:

    • 我的问题的根本原因最终是与 Java 编译器相关的 pom 中的问题。所以我只是想重申一下,上面的解决方案只是一种解决方法,直到发现并修复根本原因。修复 pom 后,将 m2e 导入 STS 即可按预期工作。
    • 在 2016 年中,我仍然需要手动将该条目添加到 .classpath (STS 3.8.1) .....
    【解决方案5】:
    • 安装 M2E 插件。
    • 右键单击您的项目并选择配置 -> 转换为 Maven 项目。

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

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

        【解决方案7】:

        我可以找出问题所在。我在 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 构建路径中。

        【讨论】:

          【解决方案8】:

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

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

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

          希望这行得通。

          【讨论】:

            【解决方案9】:

            如果您导入了现有的 maven 项目并且 Maven 依赖项未显示在 Eclipse 的构建路径中,则右键单击项目--> Maven-->“更新项目”将解决该问题。

            【讨论】:

              【解决方案10】:

              如果您不小心从库中删除了 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>
              

              【讨论】:

                【解决方案11】:

                如果您使用 Eclipse 插件来执行您的 maven 任务(其中有 2 个:来自 sonatype 的 M2ecipse 'official' one 和 Google Code 上的 q4e),那么上下文菜单中有选项(右键单击项目) 轻松地做到这一点。

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

                【讨论】:

                  【解决方案12】:

                  试试:右键你的项目->Maven->禁用依赖管理。 并重新启用依赖管理。

                  【讨论】:

                    【解决方案13】:

                    您也可以考虑将 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 package”,maven 会将所有需要的依赖项复制到 your_project_path/target/your_project_name/WEB-INF/lib/ 目录。从那里您可以将它们复制到您的项目/lib 目录并添加为外部 jar(配置您的项目设置构建路径)

                    【讨论】:

                      【解决方案14】:

                      按照这些步骤操作

                      1) 进入项目类路径

                      2) 进入库选项卡

                      3) 点击添加库

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

                      5) 点击下一步

                      6) 在新对话框中点击管理项目设置

                      7) 在打开的对话框中选中复选框 Resolve dependencies from workspace

                      8) 点击恢复默认值

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

                      【讨论】:

                        【解决方案15】:

                        可能非常简单但最好的方法是手动编辑项目文件夹根目录下的 .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 时(网络应用的情况)

                        【讨论】:

                          【解决方案16】:

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

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

                          如果 pom.xml 文件已经存在,那么它已经是一个 Maven 项目,所以你可以直接在 pom.xml 中添加你的依赖项

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

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 2014-07-21
                            • 2015-02-04
                            • 2016-04-19
                            • 2011-02-05
                            • 2013-06-02
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多