【问题标题】:Maven not downloading dependencies in EclipseMaven 没有在 Eclipse 中下载依赖项
【发布时间】:2015-10-21 14:34:41
【问题描述】:

我正在 eclipse 中设置一个项目。该项目通过命令行成功构建(所有mvn 命令,如mvn packagemvn compilemvn clean install)工作得很好。在 STS 或 Eclipse 上设置此项目时。我看到一些依赖项没有被下载,即使它们存在于pom.xml 中。但是,在 maven 存储库中搜索它们并将 jar 下载到我的本地计算机,然后将它们添加到构建路径使其可以在 Eclipse 上运行。

我们需要对 eclipse 做些什么来确保它从存储库中下载所有依赖项。

我的 POM

<dependency>
    <groupId>org.apache.bookkeeper</groupId>
    <artifactId>bookkeeper-server-compat410</artifactId>
    <version>4.1.0</version>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.apache.bookkeeper</groupId>
            <artifactId>bookkeeper-server</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.bookkeeper</groupId>
    <artifactId>bookkeeper-server-compat420</artifactId>
    <version>4.2.0</version>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.apache.bookkeeper</groupId>
            <artifactId>bookkeeper-server</artifactId>
        </exclusion>
    </exclusions>
</dependency>

这两个工件都没有为 Eclipse 下载,并且发现 http://mvnrepository.com/artifact/org.apache.bookkeeper/bookkeeper-server-compat410/4.1.0http://mvnrepository.com/artifact/org.apache.bookkeeper/bookkeeper-server-compat420/4.2.0 的 jar 在 MavenDependencies 的文件夹中不存在,随后在 Eclipse 中出现错误。

但是,手动将它们添加到构建路径会创建一个新文件夹(参考库)并解决 Eclipse Errors 。为什么 Eclipse 没有自己从 maven 存储库下载和导入这些依赖项??它是 Eclipse 中的错误还是我这边的一些问题。请帮忙。

【问题讨论】:

  • 是否下载了其他依赖项?如果是,请尝试我的答案中的第二个解决方案
  • 确保你已经保存了 pom.xml,然后运行“mvn install”

标签: java eclipse maven


【解决方案1】:

我遇到了同样的问题,这就是我解决的方法。 :

  1. 右键单击您的项目,选择运行方式 -> Maven 安装。 观察输出控制台以查看安装进度。后 安装完成,您可以继续下一步。

  1. 右键单击您的 Spring MVC 项目,选择 Maven -> 更新项目。

  1. 选择您的项目并单击确定。等到更新过程结束 完成。
  2. 错误依旧,然后做Project->Clean,然后确保你已经选择了我们的项目目录,然后按照Project->Build进行。

【讨论】:

  • 并不总是得到保证,您可能不会得到很少的依赖项。我们需要从文件夹中删除 lastmodified 文件并重试
  • 很多时候我解决了这些从命令行运行的问题 mvn install -U 然后你可以尝试从 eclipse 执行 mvn project update
【解决方案2】:

解决方案 1:

设置正确的代理:

<proxy>
    <id>optional</id>
    <active>false</active>
    <protocol>http</protocol>
    <username></username>
    <password></password>
    <host>172.27.171.91</host>
    <port>8080</port>
</proxy>

解决方案2:

直接删除

lastupdated extension files from folder

并尝试更新 maven。

[此解决方案在大多数情况下都有效]

【讨论】:

  • 我是 jee、eclipse、maven 和所有东西的新手。请问在哪里添加代理以及 .lastupdated 文件在哪里
  • 代理通常存在于 setting.xml 文件中,最后一次更新发生在 repo 路径中。在本地计算机中具有相对路径的依赖项会导致错误,导航到该位置,您可以找到上次更新文件。 @GaliloGalilo
【解决方案3】:

有时下载依赖项会出错 - 例如。下载了一些文件,但本地 Maven 存储库中缺少实际的 JAR。

在这种情况下,我必须在本地 maven 存储库中删除有问题的依赖项的整个文件夹。只有这样 Maven 更新才起作用(右键单击项目并选择 Project &gt; Maven &gt; Update Project...。)

【讨论】:

    【解决方案4】:

    就我而言,我未选中 Build automatically。再次检查开始下载jar。

    【讨论】:

      【解决方案5】:

      我遇到了类似的问题。我尝试删除 .m2 中的文件夹并再次构建 maven 项目。
      除了我们自己创建并发布在 Nexus 上的一个依赖项之外,我可以下载所有依赖项。
      然后我通过从 JRE 指向 JDK 的 java 进行更改,这解决了我的问题

      【讨论】:

        【解决方案6】:

        以下内容对我有用。
        只需右键单击Project -&gt; Maven -&gt; Update Project...,如显示here

        【讨论】:

          【解决方案7】:

          我遇到过类似的问题,按照以下步骤帮助我解决了这个问题。

          1. 从各个文件夹中删除最后修改的 jar。
          2. 选择项目

            • 右键 -> Maven

            • 更新项目..

          它将下载所有丢失的罐子。

          【讨论】:

            【解决方案8】:

            我最近遇到了同样的问题。

            首先,您必须在 maven 存储库的 settings.xml 中配置代理设置。

            如果您使用的是 eclipse/STS,请进行以下验证。

            Window -> Preferences -> Maven -> User Settings -> update user settings by pointing your settings.xml
            

            现在它已设置为更新 maven 项目。它对我有用。

            【讨论】:

              【解决方案9】:
              1. 尝试将您的依赖项从“类型”标签移动到“范围”标签,如下所示

              <dependency>
                      <groupId>net.xyz.xyz</groupId>
                      <artifactId>xyz-xyz</artifactId>
                      <version>x.y.z</version>
                      <type>pom</type>
               </dependency>
              

              <dependency>
                          <groupId>net.xyz.xyz</groupId>
                          <artifactId>xyz-xyz</artifactId>
                          <version>x.y.z</version>
                          <scope>test</scope> 
                   </dependency>
              

              然后进一步 Maven > 更新项目

              【讨论】:

                【解决方案10】:

                对我来说,我将包装从 pom 更改为 jar,然后下载了依赖项。

                so I changed from <packaging>pom</packaging> to <packaging>jar</packaging>
                

                【讨论】:

                  【解决方案11】:

                  确保您将依赖项定义为尽可能靠近需要它的项目树的叶子。 否则,Maven 可能会忽略它。

                  例如,如果您有一个引用项目 A 和 B 的父项目,并且依赖项与项目 A 相关,那么在父项目的 pom.xml 中定义依赖项可能会被 Maven 忽略。所以,在项目A的pom.xml中定义吧。

                  Parent Project's pom.xml
                     Sub-project A's pom.xml <<< define the dependency where it is needed
                     Sub-project B's pom.xml
                  

                  【讨论】:

                    猜你喜欢
                    • 2020-04-30
                    • 2012-04-08
                    • 2017-11-09
                    • 2016-01-11
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多